欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-02 08:39:46
...

网络分层:应用层(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连接还是会被断开。

 

相关标签: tcp/ip