网络模型分层,OSI参考模型与TCP/IP模型各有优缺点,所以学习的时候通常综合两者优点:
如何理解网络模型的分层?我们先用Wireshark软件抓取一下网络通讯时的数据包,看看通讯时到底传输了什么东西,下图是我访问网站时抓取到的数据包:
根据数据包的结构可以把数据包分为这样几个部分,正好可以与网络模型相对应:
DNS
FTP
SMTP
POP3
HTTP
UDP交付的是不可靠的信息,仅仅添加了端口信息和校验信息,校验还是可选的,其它的什么都没做。
TCP为了交付可靠的信息,设计了一套复杂的机制。
TCP链接管理:
TCP可靠传输:
TCP会对数据进行确认,确认号是期望收到对方下一个报文段的数据的第一个字节的序号。
两种事件会导致报文段重传:
1.超时重传,TCP使用略大于加权平均时间RTTs作为超时时间。
2.冗余确认,当连续收到3个冗余的确认时,认为该报文段丢失,重传该报文段。
TCP流量控制:
选择重传协议:发送窗口大小>1,接收窗口>1
TCP拥塞控制:
IPv4
子网掩码、CIDR、超网
ARP协议
DHCP协议
ICMP协议
IPv6
距离向量路由算法 RIP
RIP属于应用层的协议
RIP允许一条路由最多包含15个路由器。
仅和邻居路由器交流信息。
每30秒交换一次信息,180秒没收到信息,判定邻居没了。
坏消息传的慢,好消息传的快
链路状态路由算法 OSPF
使用洪泛法向自治系统内的所有路由器发送信息。类似广播。
链路状态发生变化时才用洪泛法交换信息。
外部网关协议 BGP
与BGP发言人交换信息。
发生变化时交换信息。
流量控制与可靠传输机制:
停止-等待协议 | 发送窗口大小=1,接收窗口=1 |
后退N帧协议 | 发送窗口大小>1,接收窗口=1 |
选择重传协议 | 发送窗口大小>1,接收窗口>1 |
介质访问控制:
现在每个电脑都单独一个冲突域,所以介质访问控制感觉无用武之地了。
信道划分 | 频分多路复用 |
时分多路复用 | |
波分多路复用 | |
码分多路复用 | |
随机访问 | ALOHA协议 |
CSMA协议 | |
CSMA/CD | |
CSMA/CA | |
轮询访问 | 令牌传递协议 |
由此我们可以得出相位与一个码元的比特数关系:
波特率是传输码元的速度,单位是B/s。
比特率是传输比特的速度,单位是b/s。
一个码元能携带2bit数据,那么比特率 = 2倍的波特率!
一个码元能携带4bit数据,那么比特率 = 4倍的波特率!
应用层:http协议没有校验
传输层:TCP和UDP对整个数据报校验,UDP可以不校验。二进制反码求和再求反码。
网络层:IPv4仅对首部校验,IPv6不校验。
数据链路层:使用CRC循环冗余校验。
物理层设备:中继器、集线器。
数据链路层设备:网桥、局域网交换机。
网络层设备:路由器。