TCP报文格式,tcp报文

如果是先建立TCP,再进行的HTTP通信,那为何会说TCP是在HTTP报文外面包了一层TCP的信息?

TCP报文格式,tcp报文


这得从网络的OSI七层协议说起 。TCP协议属于传输层,工作在第4层 。而HTTP协议属于应用层,工作在第7层 。所有网络传输最后都必须有第1层物理层来完成,也就是0101的物理电信号 。上层数据都是被层层封装,最后再转化为物理信号传输的 。1、OSI七层网络模型的来源早在互联网起源的时代,网络通讯并不是统一标准的,而是各家有各家的通讯方法 。
而OSI七层模型最早是由Honeywell Information System公司的一个小组完成设计的 。他们的目的只是在设计数据库系统通讯时,需要一个结构化的分布式通讯体系结构 。于是在1977年六提出了分布式系统体系结构(DSA) 。它就是7层模型的主题,1978年OSI专家委员会召开会议,达成了共识,认为这个分层结构能满足开放系统的大多数要求,1979年稍做修改就成了最终版本 。
2、OSI七层模型的分层结构在OSI七层模型中,将网络通讯分为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层共7个层次 。1-4层属于偏机器侧的下层,5-7层属于偏人类侧的上层 。每个层次的功能如下:应用层:它是用户的一个交互接口,通常是采用人类最容易懂的语言展示的 。HTTP协议就是我们最常见的应用层协议 。
这里通过HTTP报文头对应用过程进行控制,比如,定义HTTP版本、缓存、连接状态、传输加密等等表示层:这里是对应用层的一个很好扩展,它主要是将应用层数据进行适当转换格式,以达到最优的通讯效果 。比如:对数据进行压缩以减少网络带宽的压力;对数据进行加密方便安全传输 。常用的格式有:JPEG、ASCII、EBCDIC等 。
会话层:这里负责控制会话的建立、管理和终止 。它依然属于上层应用 。一个会话就类似于两台机器的一次沟通 。一个会话可以有很多下层连接 。传输层:这里主要定义数输数据的协议端口号,以及流控和差错校验 。其实也就是为了每个协议不冲突,他们用不同端口来区分不同协议 。同时,流控和差错校验是为了保障传输不出错和优先级 。TCP和UDP就是工作在这里 。
这里是可以理解为对上3层的数据进行多通道传输 。比如:我们一次HTTP请求,可能需要获取文字、图片、视频三类资源 。文字图片可能就走TCP 80端口,优先级一般,视频则可能走RTSP协议,优先级高 。网络层:主要是进行逻辑寻址和不同网络之间的选路 。可以理解为网络世界的导航、也可以理解为网络世界的路牌 。它可以帮助数据包找到最优的路径去传输 。
数据链路层:这里主要是进行硬件寻址和建立逻辑连接,也有差错校验功能 。如果把网络层的寻址比喻为找到每个人唯一名字(IP),那这里就是找到名字对应的身份证号码(MAC地址) 。MAC地址就是硬件地址,每一个网口都有一个全球唯一MAC地址 。物理层:这里最容易理解,就是定义网络线路的电气特性,并控制通讯的建立、传输、断开三种物理状态 。
我们常常用到的RJ45网线就是这里定义的 。3、计算机网络通讯是如何完成了解了OSI七层模型,我们来看看计算机网络通讯到底如何完成的 。假设电脑A要用网页访问网站B 。那么网络会如何来通讯呢?当电脑A输入网址敲回车,计算机会先找你配置的DNS服务器,去找它将网址中的域名翻译成IP地址 。得到IP地址后开始进行通讯 。
①、电脑A处一直在层层封装在应用层:A把“自己想要什么东西”这段信息用HTTP报文进行封装,HTTP报文头写明:自己能希望的HTTP协议、传输缓存等等 。可以理解为在封装上贴了一个备注 。在表示层:如果需要加密,则在表示层把自己的HTTP信息进行加密 。到了会话层:A会对上面这个数据报文贴上会话ID、超时信息等等会话控制的关键信息 。

推荐阅读