美文网首页
TCP/IP 协议分层模型.

TCP/IP 协议分层模型.

作者: 葛木小舍先生丶 | 来源:发表于2020-01-19 18:19 被阅读0次

    大学教科书中有说分成7层,也有说分成4层的,笔者觉得4层更合适一些,像七层中的第5、6层完全不是必须的,就算有也是各自制定协议,而制定协议的人基本不会去考虑第5层叫会话层第6层叫表示层,在私有应用层协议中,更多的是会私定一个握手互信协议,以表示通讯双方是互信的.

    TCP/ IP 协议,是一组协议簇.而不是两种协议,其范围以其分层模型来进行分类

    图片.png
    • 应用层:
      程序员所编写好的网络程序,就是应用层.qq,微信,浏览器等等.基于网络编程的,都属于应用层的范涛.

    应用层协议:
    常见与常用的 http协议,ftp协议,telnet,smpp,xmpp等共有协议. 还有诸如六毛的私有协议.

    • 传输层
      什么是传输层,传输层是干嘛的,传输层,是用来做数据传输的.数据是什么,数据就是我们在使用应用层网络程序时产生的一系列数据,这些数据需要在网络上流动,传输,才能实现数据在通过网络在各客户端程序之间的交互与传输.怎么传输这些数据,就需要使用到传输层的传输协议:TCP/UDP协议.传输层就只有这两种公有标准传输协议

    tcp/udp 协议不仅指定了数据传输的标准,同时也代表着两种截然不同的数据传输方式.应用与不同的数据传输场景与需求.他们各自有各自的优点与针对点,也各有不足.我们在选择何种传输协议的时候.需要按数据传输的类型和需求来选择合适的传输协议.

    • tcp协议的主要实现点对点通信,需要知道彼此都在家呆着,(通过四次握手建立连接)数据发送需要进行确认.是数据安全的.由客户端发起连接,向服务端请求数据.

    • UDP协议,客户端知道服务器的家在哪,而不需要却定其是否在家.直接发送数据包过去.如果服务器不在.则信息丢失.数据的传输不可靠,不安全.具有一定的风险性.

    应用层在将数据传输给传输层后,传输成为数据贴上相关信息,发往指定的地址.

    传输层传输的数据,是应用层数据进行一次包装后的整体数据包.(就相当于一个快递包裹).传输层协议贴上的标记信息,就是头部数据.

    • 网络层
      ip,icmparp,rarp协议等.

    对于普通编程人员来说,做需要关注,与最容易涉及到的,无疑就是应用层,与传输层.我们在编写网络程序的时候,一定会有各种不同场景下的数据交互需求,因此,应用层协议与传输层协议是我们必须得详细的学习和运用的.

    应用层与传输层之间的关系也是十分紧密.

    • 以http协议来说:
      http协议是一个简单的请求-响应协议.我们最常使用的通过浏览器浏览网站,网页.大多都是基于这类协议的(http,https,总之一定是请求-响应协议).

    http协议是建立在TCP协议之上的一种应用层协议.我们在访问一个网站的时候.浏览器会通过TCP协议发送如下字符串到服务器的应用层:

    GET /test/abtest HTTP/1.1
        Host: 127.0.0.1
        Connection: keep-alive
        Cache-Control: max-age=0
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
        Accept-Encoding: gzip, deflate, br
        Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
        Cookie: PHPSESSID=970260278652571648
    
    图片.png

    我们随意访问一个网站,进入开发模式,即可查看到相关的消息头与参数.这些字符串就是应用层数据,应用层数据是按照一定格式来组织的.这个格式就是应用协议.譬如http协议.

    传输层在往应用层传递数据的时候,并不保证每次传递的数据都是一个完整的应用层数据包.(以http协议为例,并不能保证应用层收到的一定是一个完整的http数据包)这就是半包与粘包,传输层只负责传递buye[]数据,应用层需要自己对byte[]数据进行解码.


    2020.1.19

    相关文章

      网友评论

          本文标题:TCP/IP 协议分层模型.

          本文链接:https://www.haomeiwen.com/subject/mkarzctx.html