zoukankan      html  css  js  c++  java
  • TCP/IP四层模型及各层协议首部详述

    1. OSI七层和TCP/IP四层的关系

    1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

    1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

    1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

    TCP:transmission control protocol 传输控制协议

    UDP:user data protocol 用户数据报协议

    OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
    应用层(Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS、SMTP
    表示层(Presentation) Telnet, Rlogin, SNMP, Gopher
    会话层(Session) SMTP, DNS
    传输层(Transport) 传输层 TCP, UDP
    网络层(Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
    数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
    物理层(Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11

    2. OSI七层协议模型

    应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

    3. TCP/IP四层模型

    3.1 应用层:对应OSI中的应用层、表示层、会话层

    3.2 物理链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

     

    3.3 数据包说明:

    IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输

     

    UPD首部
    UPD首部格式如下:

    UDP 是无连接的,即发送数据之前不需要建立连接。

    UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。

    UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。

    UDP 支持一对一、一对多、多对一和多对多的交互通信。

    UDP 的首部开销小,只有 8 个字节


    端口号:用来表示发送和接受进程。由于 I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值),因此T C P端口号由T C P来查看,而 U D P端口号由UDP来查看。T C P端口号与UDP端口号是相互独立的。

    长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为 8字节(发送一份0字节的UDP数据报是 O K)。

    检验和:UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动


    TCP报文段首部
    TCP报文段首部的前20个字节是固定的,后面的字节是根据需要增加的。首部格式如下:

    TCP 提供可靠交付的服务,保证数据无差错、不丢失、不重复、按序到达。

    TCP 提供全双工通信。

    TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP 报文段分为首部和数据两部分

    1、第一个4字节: 
    (1)源端口,16位;发送数据的源进程端口
    (2)目的端口,16位;接收数据的进程端口
    2、第二个4字节与第三个4字节 
    (1)序号,32位;代表当前TCP数据段第一个字节占整个字节流的相对位置;
    (2)确认号,32位;代表接收端希望接收的数据序号,为上次接收到数据报的序号+1,当ACK标志位为1时才生效。
    3、第四个4字节: 
    (1)数据偏移,4位;实际代表TCP首部长度,最大为60字节。
    (2)6个标志位,每个标志位1位; 
    SYN,为同步标志,用于数据同步; 
    ACK,为确认序号,ACK=1时确认号才有效; 
    FIN,为结束序号,用于发送端提出断开连接; 
    URG,为紧急序号,URG=1是紧急指针有效; 
    PSH,指示接收方立即将数据提交给应用层,而不是等待缓冲区满; 
    RST,重置连接。
    (3)窗口值,16位;标识接收方可接受的数据字节数。详解可参看:http://www.cnblogs.com/woaiyy/p/3554182.html
    4、第五个4字节 
    (1)校验和,16位;用于检验数据完整性。
    (2)紧急指针,16位;只有当URG标识位为1时,紧急指针才有效。紧急指针的值与序号的相加值为紧急数据的最后一个字节位置。用于发送紧急数据。
    IP报文
    IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图

    1、第一个4字节(也就是第一行):

    (1)版本号(Version),4位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也就是二进制的4和6。
    (2)首部长度(Internet Header Length),4位;用于标识首部的长度,单位为4字节,所以首部长度最大值为:(2^4 - 1) * 4 = 60字节,但一般只推荐使用20字节的固定长度。
    (3)服务类型(Type Of Service),8位;用于标识IP包的优先级,但现在并未使用。
    (4)总长度(Total Length),16位;标识IP数据报的总长度,最大为:2^16 -1 = 65535字节。
    2、第二个四字节:

    (1)标识(Identification),16位;用于标识IP数据报,如果因为数据链路层帧数据段长度限制(也就是MTU,支持的最大传输单元),IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
    (2)标志(Flag),3位,但目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
    (3)片偏移(Fragment Offset),13位;代表某个分片在原始数据中的相对位置。
    3、第三个四字节:

    (1)生存时间(TTL),8位;以前代表IP数据报最大的生存时间,现在标识IP数据报可以经过的路由器数。
    (2)协议(Protocol),8位;代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
    (3)校验和(Header Checksum),16位;用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。
    4、第四个四字节:源IP地址

    5、第五个四字节:目的IP地址


    以太网的帧格式如下所示:

    在图中,帧末尾就是CRC校验码。

    此外,对其他字段解释如下:

    字段  Meaning
    目的地址  MAC地址
    源地址 MAC地址
    类型  三种值,分别对应IP、ARP、RARP


     

    最常用的 MAC 帧是以太网V2的格式

    注:

        1. 以太网帧中的数据长度规定最小46字节,最大1500字节。ARP和RARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最⼤大传输单元MTU,不同的网络类型有不同的MTU。如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)。
        2. ifconfig命令的输出中也有“MTU:1500”。注 意,MTU这 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。
        3. MAC地址是指网卡的硬件地址,长度是48位。是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。

    ————————————————
    版权声明:本文为CSDN博主「Unix探索之旅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sty124578/article/details/79085608

    网络设备:
    交换机:负责组建局域网,看的是MAC地址。
    路由器:负责组建广域网,看的是IP地址。

    传输介质:
    常用的两种传输介质是双绞线和光纤。

    OSI七层模型(由于七层太过于严格,所以并没有应用在计算机中,而是基于 其衍生了一个TCP/IP四层模型,被广大操作系统所应用):

    7,应用层:网络服务与最终用户的一个接口。
    6,表示层:数据的表示安全压缩。
    5,会话层:建立,管理,中止会话。
    4,传输层:定义传输数据的协议端口号。
    3,网络层:进行逻辑地址追寻,实现不同网络之间的路径选择。
    2,数据链路层:建立逻辑链接,进行硬件地址寻址。
    1,物理层:建立,维护,断开物理连接。

    TCP/IP四层模型:
    4,应用层:负责处理特定的应用程序细节。
    3,传输层:只要为两台主机上的应用程序提供端到端的通信。
    2,网络层:处理分组在网络中的活动。
    1,网络接口层:建立,维护,断开物理连接。

    传输层协议:
    TCP和UDP是两种最为著名的传输层协议,二者都使用IP作为网络层的协议。

    TCP:传输控制协议,面向连接的协议。(适用于一对一传输)
    UDP:用户数据报协议,是一种无连接的协议。(适用于一次传输少量数据,传输效率高,延迟小,可以一对一,一对多,多对一和多对多的交互通信)

    TCP与UDP区别:
    1,TCP面向连接(如打电话要先拨号建立连接),UDP是无连接的,即发送数据之前不需要建立连接。
    2,TCP提供可靠的服务,无差错,无丢失,不重复,且按序到达;UDP尽最大努力交付,不保证可靠交付。
    3,UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信和广播通信。
    4,TCP只支持一对一通信。UDP支持一对一,一对多,多对一,多对多的交互通信。
    5,TCP对系统资源要求较多,UCP对系统资源要求较少。

    IP地址:

    现有的互联网是在IPv4协议的基础上运行的,采用32位地址长度,IPv4定义的地址空间将被耗尽。IPv6是下一版本的互联网协议,采用128位地址长度。几乎可以不受限制的提供地址。

    IP地址是指互联网协议地址。是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

    私有地址
    A类 :10.0.0.0–10.255.255.255
    B类 :172.16.0.0–172.31.255.255
    C类 :192.168.0.0–192.168.255.255
    ————————————————
    版权声明:本文为CSDN博主「sanda1017」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sanda1017/article/details/90680570

  • 相关阅读:
    js实现页面触摸滑动
    关于js中window.location.href,location.href,parent.location.href,top.location.href的用法
    eclipse tomcat 插件
    Eclipse中的Web项目自动部署到Tomcat的webapp目录下
    i=i+1与i+=1的区别及效率(Java)
    Java super和this
    Thinkphp
    单一静态网页如何实现点击左边菜单在右边展现内容
    dbda封装类(包括:返回二维数组、Ajax调用返回字符串、Ajax调用返回JSON)
    图片轮播代码
  • 原文地址:https://www.cnblogs.com/songqh-123/p/12552593.html
Copyright © 2011-2022 走看看