TCP/IP协议

以太网帧格式

 

字段长度含义
前同步码7B(字节)提醒接收方有帧来到,实现接收方与发送方的时钟同步,即同频率,1和0交替。
帧开始定界符(SFD)1B10101011,帧开始信号,意味着其后的信息就是MAC帧。
目的地址6B(48位)接收帧的网络适配器(网卡)的物理地址(MAC 地址),作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同或者帧的目的地址是局域网的广播地址或多播MAC地址时,就会进一步处理;如果不同,则直接丢弃。
源地址6B用来说明源主机的物理地址。
类型2B用来标识封装在帧中“数据”字段的协议类型,以便接收方能够把“数据”字段的内容交给这个协议。
数据46B~1500B长度可变,1500B被定义为以太网的最大传送单元(maximum transfer unit,MTU)。如果IP分组的长度超过了1500B,则需要对IP分组分片。如果IP分组的长度小于46B,则需要插入填充(pad)字节。
帧校验序列(FCS)4B用于检测帧中是否产生了错误。

物理地址三种类型:单播地址,多播地址和广播地址。

单播地址用于标识唯一一个以太网节结点,多播地址表示多个结点,广播地址表示连接在该以太网上的所有结点。物理地址的第一字节的最低位称为I/G(Individual/Group)位。当I/G位为0时,表示是一个单播地址;当I/G位为1时,表示是一个多播地址。若48位地址全为1,表示广播地址。


IPv4分组格式

字段长度意义
版本号4位说明IP协议的版本号,IPv4该字段值为4。
首部长度4位以4B(32位)为单位说明IP分组的长度,真正的字节数:(首部长度×4)字节;最小值为5,最大值为15;不足4B填充1~3B已凑成4B。
总长度16位整个IP分组的长度,最大65535字节(64KB)
生存时间8位IP协议中引入了IP分组的生存时间的控制机制,它限制一个IP分组在网络中的存活时间。
协议8位协议字段的值指出IP分组中的数据部分是由哪一种协议(高层协议)提供的,接收方则根据协议字段的值来确定应该吧IP分组中的数据交给哪个协议去处理。
首部校验和16位首部校验和字段用于对IP分组首部进行校验。
源IP地址和目的IP地址各32位发送者和接受者。
标识ID字段16位属于同一个IP分组的分片具有相同的标识。
标志字段3位低两位DF和MF有意义。DF为1,IP分组不能被分片;MF为0,说明是原IP分组最后一个分片,其他分片都为1。
分片偏移量13位根据分片偏移量来确定分片在原始IP分组中的位置,重新组装IP分组。

IPv6分组格式

字段长度意义
版本号4位说明协议的版本号,IPv6分组中该字段的值为6。
传输类别8位用来区分不同的IPv6分组的类别和优先级。
流标识20位流就是因特网上从特定源到特定目的的一系列分组(例如,实时音频)。所有属于同一个流的分组都有相同的流标识。
有效载荷长度16位以字节(B)为单位说明IPv6分组中除基本首部以外的其他部分的字节数 ,其最大值是65535B。见上图。
下一首部8位定义了紧跟在IPv6基本首部后面的扩展首部的数字标识号或数据部分的协议类型。数字标识号为2时,下一首部为ICMP(网络控制报文协议);数字标识号为6时,下一首部为TCP;数字标识号为17时,下一首部为UDP。
跳数极限8位类似于IPv4分组首部中的生存时间(TTL),用来限制分组在网络中的生存时间。每经一个路由器-1,减到0丢弃。
源地址128位标识发送分组的结点的IPv6地址。
目的地址128位标识接收分组的结点的IPv6地址。

在RFC 2460中定义了6中扩展首部:

  • 跳到跳选项扩展首部

  • 源路由选择扩展首部

  • 分片首部

  • 目的选项首部

  • 认证首部

  • 加密安全载荷首部

  • 在RFC 3775中定义了:移动首部

扩展首部在IPv6分组中的出现顺序

  1. IPv6基本首部

  2. 跳到跳选项扩展首部

  3. 目的选项扩展首部(其TLV可选项需要中间结点处理)

  4. 源路由选择扩展首部

  5. 分片扩展首部

  6. 认证扩展首部(AH)

  7. 封装安全载荷扩展首部(ESP)

  8. 目的选项扩展首部(其TLV可选项仅在目的结点处理)

  9. 上层协议首部


IP分类编制


地址解析协议

地址解析协议(ARP)用于将IP地址映射为物理地址。

逆向地址解析协议(RARP)用于将物理地址映射为IP地址。

ARP工作过程:

执行ARP功能的主机都配有一个ARP高速缓存(ARP cache),用来存放已知主机和路由器的IP地址到物理地址的映射记录

我们以主机A向主机B发送数据为例,这时主机A会拥有自己的IP地址和MAC地址和目的主机B的IP地址。主机A首先会在自己的ARP缓存表中查询是否有目标IP地址,如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,这表示向同一网段内的所有主机发出这样的询问:“B的MAC地址是多少”,网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“B的MAC地址是...”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。

ARP高速缓存中的转换表是动态的,每当发送一个数据报且高速缓存种不存在相应的映射记录时,ARP缓存表便会自动在转换表中添加一条映射记录,如果这条记录在一段时间没有使用,则该记录就会失效,将会从转换表中把它删除掉。


ICMPv4报文类型

  • 差错报告报文

    • 3 (类型号,下同):目的不可达(网络不可达、主机不可达、端口不可达等等,当路由器不能给IP分组找到路由,或者主机不能交付IP分组时,丢弃这个IP分组,然后给源主机发送该报文)。

    • 4:源抑制(当路由器或主机缓冲区溢出而丢弃IP分组时,就向IP分组的发送站发送该报文)。

    • 11:超时(当IPv4种的生存时间字段减为0且没到达目的,就会源点发送该报文)。

    • 12:参数问题(IP分组首部某个字段不正确,向源站发送该报文)。

    • 5:改变路由(路由改变向源主机发送该报文,并把正在传输的IP分组送到适当的路由器)。

  • 查询报文

    • 8或0:回声请求或响应(测试网络目前的工作状态)

    • 13或14:时间戳请求或响应(同步主机或路由器的时钟,还可确定两个系统往返时间)

    • 17或18:地址掩码请求或响应(获取子网掩码)

    • 10或9:路由器请求或通告(通告自己的存在,得知其他路由器情况)

ICMPv6报文类型

  • 差错报告报文

    • 1:目的不可达(同上)

    • 2:分组过大(同上)

    • 3:超时(同上)

    • 4:参数错误(同上)

  • 信息报文

    • 128:回声请求(同上)

    • 129:回声应答(同上)

    • 130:组成员查询(多播)

    • 131:组成员报告(多播)

    • 132:组成员退出(多播)

    • 133:路由器请求(无状态地址自动配置,以后会发相关文章详解)

    • 134:路由器通告(无状态地址自动配置,以后会发相关文章详解)

    • 135:邻结点请求(邻结点探测,以后会发相关文章详解)

    • 136:邻结点通告(路径MTU探测,以后会发相关文章详解)

    • 137:重定向(地址的重新配置)


路由信息协议

与上述IPv4和IPv6分组格式中的生存时间(TTL)和跳数极限相关。

RIP(路由信息协议)使用距离(跳数)作为尺度来衡量路由的优劣,跳数是一个IP分组到达目的结点时必须经过的路由器的数目,跳数最少的路由就被认为是最佳路由。RIP支持的跳数最多为15,跳数大于15时就被认为是目的网络不可达,因而RIP只适用于小型互联网。

当路由器发现连接的网络发生变化时,它将更新自己的路由表,RIP规定路由更新周期为30s,邻居之间每30s相互交换一次RIP响应报文,以进行路由信息通告。


传输层

传输层协议提供应用进程间的端到端的逻辑通信,而网际层协议提供主机与主机之间的逻辑通信。

端口(port)是传输层的一个非常重要的概念,应用层的各种应用进程通过相应的端口与传输层进行交互。

端口80(TCP) 应用层协议HTTP 超文本传输协议

一个IP地址与一个端口号结合起来就叫作套接字(socket)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值