一、网络体系结构
物理层、数据链路层、网络层、传输层、应用层
二、网络层
在网络中找到相应的主机
1.IP协议
? 无连接、不可靠的分组传送服务协议
? 点-点的网络层通信协议
? IPv4分组头的协议值规定了其数据部分为相应的高层协议
2.路由选择算法
RIP(路由信息协议)、OSPF(最短路径优先协议)
(1).RIP
? 路由器接收相邻路由器的路由表信息,将原本没有的和更好的路由信息添加到自己的表中,最后得到了一个最优的表。
(2).OSPF
3.网络控制报文协议ICMP
? IP协议是一种尽力而为的协议,IP分组发出去,源主机对之后的情况一无所知,ICMP能解决这个问题。ICMP有差错报告报文,路由器或者主机检测IP分组头的协议=1确认其数据部分是ICMP协议,如果找不到目的主机,路由器或主机会向源主机发送ICMP报文说目的主机不可达。
说明ICMP是IP协议的一部分
4.地址解析协议
ARP(IP解析为MAC)、RARP(MAC解析为IP)
5.IPv6协议
IPv6地址长度128位,IPv4是32位
(1).地址压缩
? 零压缩法:21DA:0000:0000:0000:02AA:000F:FE08:9C5A —> 21DA:0:0:0:2AA:F:FE08:9C5A
? 再用双冒号表示法:21DA::2AA:F:FE08:9C5A (只能出现一个双冒号)
(2).IPv6过渡到IPv4的方法
? IPv6作为IPv4的数据部分(与ICMP类似),即IPv6裹在IPv4里传输。
? IPv4分组头的协议字段值位41时,说明其数据部分是IPv6协议报文。
三、传输层
? 主机找到目的进程,通过套接字socket找到相应主机的端口号(进程号),如202.1.2.5:30022。
? socket = IP地址: 端口号
UDP、TCP都是传输层协议,都能从源端口号找到目的端口号,两台主机间进行通信需要采用同一种协议。
? 一个进程的全网唯一标识是通过一个三元组表示:(协议、IP地址、端口号)(TCP,121.5.21.2,80)。两台主机间的进程进行通信需要一个五元组:(协议、目的IP地址、目的端口号、源IP地址、源端口号)
1.UDP、TCP熟知的端口号
上面的协议是应用层协议
2.UDP用户数据报协议
特点:无连接、不可靠、面向报文
面向报文:不对应用程序报文做处理,而是直接加上UDP头部形成TPDU(传输协议数据单元),之后提交给IP。
UDP头部:源端口号、目的端口号、UDP总长度、校验和
使用范围:视频播放(丢了几个报文没关系,尽可能降低延迟)、简短的交互
3.TCP传输控制协议
特点:连接、可靠、面向字节流(数据不会出现丢失、重复、乱序的情况)、支持多个并发的TCP连接【一个服务 器(只有一个端口号)多个客户端(多个端口号)、一个客户端多个服务器】
TCP头部:源端口号、目的端口号、序号(当前字节的顺序编号)、确认号(序号+1)
? 比如要传输4500B的报文,初始序号为10010,分为5个报文段传输,前四个报文段长度为1000B,第五个报文段长度为500B,那么第一个报文段的序号范围就为10010-11009。
TCP连接的建立与释放
? 建立连接(三次握手)----->数据传输------->释放连接(四次握手)
? 建立连接(三次握手)
? 第一次:客户端发出请求连接的TCP报文,
? 第二次:服务器端建立请求确认,对上一个报文做响应,发出一个允许连接的报文给客户端;
? 第三次:客户端继续确认,表示已经收到服务器段发出的响应,等待服务器段发送数据,服务器收到报文 后就开始发送数据。
? 三次握手后,客户端等待接收数据,有效缓解服务器端压力,相对于网络性能影响较小。
? 释放连接(四次握手)
? 第一次:客户端发出请求释放连接的TCP报文;
? 第二次:服务器端发出确认报文,表示已经收到请求,如果服务器还有报文需要发送给客户 端,需要等待服务器端继续发送报文;
? 第三次:服务器端已经没有报文要发送给客户端了,再发出一个请求释放报文,通知客户端;
? 第四次:客户端收到报文后,发出“连接释放请求确认”报文,对上一个报文进行确认。最后服务器收到之 后,双向连接就释放了。
四、应用层
基础设施类:域名系统DNS、动态主机配置协议DHCP
网络应用类:C/S(Web服务、电子邮件等)、P2P(文件共享、即时通信等)
网络管理类:简单网络管理协议SNMP
域名解析:域名转换为IP地址
|