tcp/ip 学习记录 网络接口层 网络互联层

网络分层:应用层(Date + 应用协议)、传输层(.. + tcp/udp)、网络互联层(.. + ip)、网络接口层(.. + mac)

上面括号内的协议只是代表协议,其实还有更多的选择

以太网帧体格式:目标mac(6)、源mac(6)、类型(2)、数据(46-1500)、FCS(4)

网络拓扑:网络的连接和构成的形态称为网络拓扑。

MAC地址也不总是唯一的,即使MAC地址相同,只要不在同一个数据链路就不会出现问题。

半双工:只发送或指接受的通信方式。

全双工:允许在同一时间既可以发送数据也可以接收数据。

私有网络ip:

10.0.0.0        ~   10.255.255.255 (10.0.0.0/8) A类

172.16.0.0    ~   172.31.255.255 (172.16.0.0/12) B类

192.168.0.0  ~   192.168.255.255 (192.168.0.0/16) C类

在此之外的则是全局ip,全局ip地址基本上要在整个互联网范围内保持唯一,但私有地址不需要。

在数据发送过程中需要类似于"指明路由器或主机",以便真正发往目标地址。保存这种信息的就是路由控制表。

默认路由:指路由表中任何一个地址都能与之匹配的记录。

ip隧道:在网络层的首部后面继续追加网络层首部的通信方式。

ip报文的分片与重组:

经过分片的ip数据报在被重组的时候,只能由目标主机进行。路由器虽然做分片但不会进行重组。

如果在TCP中采用了路径MTU发现,IP层则不会再进行分片处理。

ipv4首部(通常为20 bytes):

字段 长度 意义
版本(Version) 4bit 表示ip首部的版本号
首部长度(Internet Header Length) 4bit 表示ip首部大小,单位为4字节,没有可选项Options时,ip首部为20字节,最大60字节
区分服务(Type of Services) 8bit 表明服务质量
总长度(Total Length) 16bit ip首部 + 数据部分 结合起来的总字节数,最大65535字节
标识(Identification) 16bit 该字段和Flags和Fragment Offest字段联合使用,对较大的上层数据包进行分片(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分
标志(Flags) 3bit 包被分片的相关信息
片偏移(Fragment Offset) 13bit 用来标识被分片的每一个分段相对于原始数据的位置,表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包
生存时间(TTL:Time To Live) 8bit 可以中转多少个路由器,每经过一个路由器减一,直到变成0则丢弃
协议(Protocal) 8bit 表示ip首部的下一个首部隶属那个协议
首部校验和(Header Checksum) 16bit 用来做IP头部的正确性检测,但不包含数据部分。 因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值
源地址(Source Address) 32bit 发送端ip
目标地址(Destination Address) 32bit 接收端ip
可选项(Options) 变长 通常只在进行实验或诊断时使用
填充(Padding) 变长 在有可选项Options的情况下,首部长度可能不是32bit的整数倍,此时填充0来调整为32bit的整数倍
数据(Date) 变长 data + tcp/udp头

一些网络层的协议:

ARP(网络层协议):以目标ip为线索,用来定位下一个应该接收数据分包的网络设备对应的mac地址。

RARP:从mac地址定位ip的一种协议。

ICMP(网络层):确认ip包是否成功送达目标地址,通知在发送过程当中ip包被废弃的具体原因,改善网络设置等。

在ip通信中如果某个ip包因为某种原因未能达到目标地址,那么这个具体的原因将由ICMP负责通知。

TCP/IP中,在网络层和网络层以上的所有协议都要用IP来传输,虽然是同一层,ICMP也要用IP来传输。

NAT(Network Address Translator):是用于在本地网络中使用私有地址,在连接互联网时转而使用全局ip地址的技术。

在NAT路由器的内部,有一张自动生成的用来转换地址的表(取出ip首部中的源地址进行转换)。

除转换ip之外,还有能转换TCP、UDP端口号的NAPT(Network Address Ports Translator)技术。

NAT的潜在问题:

1、无法从NAT的外部向内部服务器建立连接。

2、转换表的生成与转换操作都会产生一定的开销。

3、通信过程中一旦NAT遇到异常需要重新启动时,所有的TCP链接都将被重置。

4、即使备置两台NAT做容灾备份,TCP连接还是会被断开。

猜你喜欢

转载自zk-chs.iteye.com/blog/2300946