1.传输层
定义:为应用层提供通信服务使用网络层的服务
传输层的功能:
传输层提供进程和进程之间的逻辑通信
复用和分用
传输层对收到的报文进行差错检测
传输层的两种协议
传输层的两个协议:
1.面向连接的传输控制协议TCP:传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。 可靠,面向连接,时延大,适用于大文件
2.无连接的用户数据报协议UDP:传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。 不可靠,无连接,时延小,适用于小文件
复用:应用层所有的应用进程都可以通过传输层再传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程
1.UDP协议
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能
UDP的主要特点:
1.UDP是无连接的,减少开销和发送数据之前的时延
2.UDP使用最大努力交付,即不保证可靠交付
3.UDP是面向报文的,适合一次性传输少量数据的网络应用
4.UDP无拥塞控制,适合很多实时应用
5.UDP首部开销小,8B,TCP 20B
2.TCP协议
TCP特点:
TCP是面向连接(虚连接)的传输层协议
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达
TCP提供全双工通信
TCP字段解析:
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
确认号: 期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N则证明到序号N-1为止的所有数据都已正确收到
数据偏移(首部长度):TP报文段的数据起始处距离TCP报文段的起始处有多远以4B位单位,即1个数值是4B
六个控制为:
紧急位URG: URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用
确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1
推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付
复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接
同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文
终止位FIN: FIN=1时,表明此报文段发送方数据已发完,要求释放连接
窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6
紧急指针: URG=1时才有意义,指出本报文段中紧急数据的字节数
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认
3.TCP链接建立和释放
TCP链接的建立:三次握手
ROUND 1:
客户端发送连接请求报文段,无应用层数据, SYN=1,seg=x(随机)
ROUND 2:
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
SYN=1,ACK=1,seg=y(随机), ack=x+1
ROUND 3:
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
SYN=0,ACK=1,seq=x+1,ack=y+1
TCP链接的释放:四次握手
ROUND 1:
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接,
FIN=1,seq=u
ROUND 2:
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了-一半关闭状态
ACK=1,seq=v,ack=u+1
ROUND 3:
服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接
FIN=1,ACK=1,seg=w,ack=u+1
ROUND 4:
客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭
ACK=1,seq=u+1,ack=w+1
4.TCP流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
5.TCP拥塞控制
拥塞控制的四种算法:
1.慢开始 2.拥塞避免
3.快重传 4.快恢复
发送窗口=Min(接收窗口rwnd,拥塞窗口cwnd}
接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量
1.慢开始和拥塞避免
2.快开始和快恢复
2.应用层
两个网络应用模型:客户/服务器(c/s) 模型和P2P模型
1.客户/服务器(c/s) 模型
服务器:提供计算服务的设备。
永久提供服务
永久性访问地址/域名
客户机:请求计算服务的主机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信
2.P2P模型
特点:
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
3.DNS系统
域名的分类:
分类 | 二次分类 | 例子 |
顶级域名 | 国家顶级域名 | cn,us,uk |
通用顶级域名 | com,net,org,gov,int,aero,museum,travel | |
基础结构域名/反向域名 | arpa | |
二级域名 | 类别域名 | ac,com,edu,gov,mil,net,org |
行政区域名 | 用于我国各省、自治区、直辖市 bj,js | |
三级域名 | ❌ | |
四级域名 | ❌ |
域名服务器:
根域名服务器
顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
权限域名服务器:负责一个区的域名服务器
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器
查询解析域名的两种方法:
1递归查询
2.迭代查询
4.文件传输协议FTP
定义:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
FTP是基于客户/服务器(c/S)的协议
FTP工作原理:
控制连接始终保持
数据连接保持一会
是否使用TCP20端口建立数据连接与传输模式有关
主动方式使用TCP20端口
被动方式由服务器和客户端自行协商决定(端口1024)
5.电子邮件系统
1.简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器,使用的端口号是25
SMTP的缺点:
SMTP不能传送可执行文件或者其他二进制对象
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
SMTP服务器会拒绝超过一定长度的邮件
解决:通用因特网邮件扩充MIME
2.网际报文存取协议IMAP
定义:IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上
3.基于万维网的电子邮件
6.万维网
万维网www(World Wide web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
URL:统一资源定位符
HTTP:超文本传输协议
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来
1.超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
HTTP的连接方式:
1.持久连接
非流水线连接
流水线连接
2.非持久连接
HTTP的报文结构:
1.请求报文
2.响应报文
HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串