说在前面:这个文章是用于我个人复习,不保证正确,文章内容参考教材《计算机网络自顶向下》以及网络,写的会比较杂乱,因为复习时间宝贵没有空检验,等有空了再来修改
传输层
应用层<----提供服务—>传输层<—接收服务—>网络层
1,传输层服务,进程到进程通信
寻址:端口号(通过C-S模式)
本地主机:客户,远程主机:服务器
使用IP地址来定义主机
使用端口号来定义进程
端口号:0----65535之间的16位整数
客户端使用临时端口号(客户的生命周期通常很短)
服务端:熟知端口号
端口号范围:
套接字地址:IP地址+端口号=套接字地址
封装与解封装:
封装在发送端发生,当进程有报文要发送:将报文+套接字地址+其他信息发送给传输层,传输层接收数据,加入传输层头部
解封装发生在接收端:报文到达目的传输层,头部被丢弃,传输层将报文—>发送给应用层运行的进程;如果需要响应收到的报文,发送方的套接字地址被发送到进程
多路复用、多路复解
源端的传输层执行复用(多对一)
目的端传输层执行多路复解(一对多)
流量控制
使用2个缓冲区,发送方一个,接收方运输层一个
缓冲区是一组内存单元;发送方缓冲区满,则通知应用层停止传输报文,有空闲了再通知他;接收方满了,通知传输层停止传输,有空闲了再通知一下
差错控制
因为IP层(网络层)是不可靠的,如果应用层要可靠那只能靠传输层了!!!!
差错控制负责:
1,发现丢弃被破坏的分组
2,记录丢失和丢弃的分组并重传
3,识别重复并丢弃
4,缓冲失序分组直到丢失的分组到达
序号,通过序号来辨认是否产生差错
确认:发送消极or积极的信号作为差错控制
接收方可以位每一组正确到达的分组发送一个确认ACK,接收方可以简单地丢弃被破坏的分组。发送方如果使用计时器,就可以发现丢失分组,当一个分组被发送。发送方就开启一个计时器。如果ACK在计时器超时之前没有到达,就重发这个分组。重复的分组可以被接收方默默丢弃。时许的分组既可以被丢弃,也可以存储直到丢失的那个分组到来。(太强了666
流量控制+差错控制:
要求使用2个缓冲区(两个序号,x+y)
发送端:分组准备发送时,我们使用下一个缓冲区空闲位置号码x作为分组的序号;分组被发送,一个分组的备份存储在内存
滑动窗口:0到2^m-1范围内进行线性移动
拥塞控制
第一部分还没有讲述,稍后补
面向连接服务VS无连接
无连接意味着分组之间独立,会发生差错(顺序错误或者丢失)
面向连接,需要进行建立连接(3次握手),可以实现流量控制、差错控制、拥塞控制
二、传输层协议