文章目录
运输层
- 运输层向上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最低层
- 网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信
- 功能:复用和分用
功能
运输层端口
- 当运输层收到IP层交上来的报文时,就能够根据首部的目的端口号把数据交付给应用层的目的应用进程
- 两个计算机中的进程要互相通信,不仅必须要知道对方的IP地址(找到对方的计算机),还要知道对方的端口号(为了找到对方计算机中的应用进程)
- 分类:
(1)服务器端使用的端口号
(2)客户端使用的端口号
UDP(用户数据报协议,user datagram protocol)
UDP特点
1)UDP是无连接的。发送数据前不需要建立连接
2)UDP尽最大努力交付。不保证可靠交付
3)UDP是面向报文的。
4)UDP没有拥塞控制。网络出现的拥塞不会使源主机的发送效率降低
5)UDP支持一对一、一对多、多对一、多对多的交互通信
6)UDP首部开销小,只有8个字节,比TCP的20个字节的首部要短
UDP首部
根据首部目的端口,吧UDP数据报通过相应端口上交到最后的应用过程。
TCP(传输控制协议,transmission control protocol)
TCP特点
1)TCP是面向连接的运输层协议
2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
3)TCP提供可靠支付的服务
4)TCP提供全双工服务
5)面向字节流。
报文发送方式
- TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的。
- 如果应用进程传送到TCP缓存的数据块太长,TCP就可以把他划分成短一些再传送,如果应用进程一次发送的字节太短,TCP也可以等待积累有足够多 的字节后在构成报文段发送出去。
TCP连接
每一条TCP连接有两个端点,**TCP连接的端点叫做套接字(socket)**或插口
socket
- 端口号拼接到IP地址即构成套接字,
- 每一条 TCP连接唯一的被通信两端的两个端点(两个套接字)所确定
socket=(IP地址:端口号)
TCP连接 ::={socket1,socket2}={(IP1,:port1),(IP2:port2)}
可靠传输原理
- TCP发送的报文段是交给IP层传送的,但IP层只能提供尽最大努力服务,TCP下面的网络提供的是不可靠的传输。
- 当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告知发送方适当降低发送数据的速度
停止等待协议
- 原理:
传送的数据单元称为分组,每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。
- 出现差错(超时重传)
A向B发数据,在超过一段时间后仍然没有收到确认,就认为刚才发送的分组丢失了,要重传之前发送过的分组,叫做超时重传。
- 优点:简单
缺点:信道利用率太低
连续ARQ协议
- 工作原理
- 发送方没收到一个确认,就把发送窗口向前滑动一个分组的位置,位于发送窗口内的5个分组都可以连续发送出去,而不需要等待对方的确认
- 接收方采用累计确认的方式,不对收到的每个分组进行确认,而是可以在收到几个分组后,对按需到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到
- 累计确认
优点:容易实现,即使确认丢失也不必重传
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息
- 两种方式
TCP报文段首部(重要)
TCP传送的数据单元是报文段
首部的前20个字节是固定的(最小长度是20字节)
- 源端口和目的端口
- 序号:每一个字节按顺序编号,首部携带的序号字段值是本报文段所发送的数据的第一个字节的序号
- 确认号ack:期望收到对方下一个报文段的第一个数据字节的序号
- 紧急URG:URG=1,表示紧急指针字段有效,告诉系统此报文段中有紧急数据,应尽快传送
- 确认ACK:仅当ACK=1时确认号字段有效,ACK=0时确认号无效。TCP规定,在建立连接后确认ACK必须都置为1
ACK报文段可以携带数据,但如果不携带数据则不消耗序号 - 同步SYN:请求建立连接。当SYN=1而ACK=0时表示这是一个请求报文段,对方同意建立连接,这响应报文段中SYN=1,ACK=1
SYN报文段不能携带数据,但要消耗掉一个序号 - 终止FIN:释放一个连接。FIN=1时,表示此报文段的发送方数据已发送完毕,并要求释放传输连接。
- 窗口:发送本报文段的一方的接收窗口
- 紧急指针:紧急指针仅在URG=1时才有意义,指出本报文段中的紧急数据的字节数
可靠传输实现
- 滑动窗口实现
-
发送窗口的位置由窗口前沿和后沿的位置
后沿位置变化:不动(没有收到确认)、前移(收到新的确认),不能向后移动。
前沿位置变化:一般是向前移动,或不动(1.没有收到新的确认,对方通知的窗口大小不变2.收到新的确认,但对方通知的窗口缩小了,使发送窗口前沿不动),也有可能向后收缩,对方通知窗口缩小,不建议 -
发送方的应用进程把字节流写入TCP的发送缓存,接收方的应用进程从TCP的接收缓存中读取字节流
TCP流量控制、拥塞控制
-
流量控制就是让发送方 的发送速率不要太快,要让接收方来得及接收。
-
利用滑动窗口协议能够很方便的实现流量控制
对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞
TCP连接(三次握手、四次挥手)
- 三次握手:A发送报文给B;B发回确认;A再加以确认。
- 三次握手的目的:为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。
应用层
DNS域名系统
用来将人们使用的机器名字转换为IP地址
FTP文件传送协议
file transfer protocol
提供交互式访问,允许客户指明文件的类型与格式,允许文件具有存取权限
WWW万维网(web)
大规模的、联机式的信息储藏所
URL
- 格式
<协议> : // <主机>:<端口>/<路径>