为相互通信的应用进程提供了逻辑通信。
传输层实现了程序到程序
网络层实现了地址到地址
传输层的主要功能:
传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
传输层还要对收到的报文进行差错检测
传输层提供面向连接和无连接的服务。
在网络层用协议号标识使用TCP/UDP
TCP 6
UDP 17
IGMP 1
在传输层用端口号标识区分上一层
TCP的端口
端口用一个16位端口号进行标识
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程,。在因特网中不同计算机的相同端口号是没有联系的。
端口的取值范围是0~65535
熟知的端口0~1023
登记端口 1024~49151
客户端口号 49152~65535
在TCP/IP协议栈,传输层有两个协议TCP/UDP
TCP(Transmission Control Protocol 传输控制)协议:
需要将要传输的文件分段传输,服务器和客户端建立会话,能够实现可靠传输,有流量控制功能。
例子:qq传文件
UDP(User Data Protocol 用户数据报协议)协议:
一个数据包就能够完成数据通信,不分段,不
需要建立会话(对服务器性能要求降低),不需要流量控制,不可靠传输。
例子:域名解析,qq聊天,屏幕广播,还应用于多播、广播
发送的电子邮件用到的什么协议?
答:用到TCP协议
用FTP下载文件用到的什么协议?
答:TCP
查看会话 netstat -n
查看建立会话的进程 netstat -nb
UDP是无连接的,即发送数据之前不需要建立连接。
UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
UDP是面向报文的。UDP没有拥塞限制,很适合多媒体通信的要求。
UDP支持一对一,一对多,多对多和多对一的交互通信。
UDP的首部开销小,只有8个字节。
首部中的长度指 的是 首部长度+数据长度
为了计算检验和,需要把网络层的信息拿过来形成伪首部。
TCP是面向连接的传输层协议
每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。
TCP提供可靠交付的服务。
TCP提供全双工通信
面向字节流
TCP的连接
TCP把连接作为最基本的抽象
每一条TCP连接有两个端点(ip+端口)
TCP连接的端点不是主机 ,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点 叫做 套接字(socket)
端口号拼接到IP地址即构成了套接字。
DNS协议绝大多数使用的UDP
常见的应用层协议使用的端口
http=TCP+80
HTTPS=TCP+443
RDP=TCP+3389
ftp=TCP+21
访问共享文件夹 TCP+445
SMTP=TCP+25
POP3=TCP+110
telnet =TCP+23
SQL=TCP+1433
DNS=UDP+53
服务和应用层协议之间的关系
服务使用 TCP/UDP的端口侦听客户端请求。
客户端使用IP地址定位服务器 使用目标端口 定位服务。
可以在’服务器网卡上设置只开放必要的端口,实现服务器网络安全。
如何在windows上安装服务
如何查看服务侦听的端口
netstat -an
netstat -n
netstat -nb
telnet 192.168.80.100 3389 测试远程计算机的某个端口是否打开
如何更改服务使用的默认端口
迷惑入侵者,使系统更加安全
如何设置windows网络安全
设置本地连接,TCP/IP筛选
可靠:保证接收方进程从缓存区读出的字节流与发送方发出 的字节流是完全一样的。
TCP实现可靠传输的机制:
1.校验
2.序号
3.确认
4.重传
一个字节占一个序号
序号字段指的是一个报文段第一个字节的序号
可靠通信的实现
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求AQR(Automatic Pepeat reQuest).
AQR表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。
信道利用率
停止等待协议的优点使简单,但缺点是信道利用率太低。
信道利用率U的公式
让TD增加U就会增加,分母相对固定
采用流水线传输
就是连续不断地发送数据包,发送方可连续发送多个分组,不必没发完一个分组就停顿下来等待对方确认。
由于信道上一直有数据不间断的发送,这种传输方式可获得很高的信道利用率。
说明这5个数据包是连续发送的,第一个数据包得到确认之后,就把窗口往右边移动,然后把1丢掉,这是6进入窗口,不断的重复。窗口内的数据包必须有确认才可以删除。(窗口里面的数据可以发出去,不可以删除)这就是使用流水线传输的时候使用滑动窗口技术实现可靠传输。
每一个数据包都可以确认,效率不高,所以出现了累计确认。
简单理解就是连续的数据包,末尾的进行确认说明前面的都可以不用确认了。
如果中间的3数据包丢失,则后面的4不会接收,则确认的数据包是2 之前的。则这时候会重新发送3数据包。
优点:容易实现 信道利用率高
缺点:不能像发送方反应出接收方已经正确收到的所有分组的信息。
分为两部分:固定20字节的首部 和 可变长部分——所以TCP的首部长度是可变的 。
源端口 目的端口 各占 2字节
序号(4字节):某个数据包第一个字节是整个文章的第几个字节则序号就是多少。是给数据包加上的头。
确认号指的是已经发送出去的数据包最后一个字节的后一位。告诉确认着下次该发第多少个字节了。
数据偏移
TCP首部不一定就是20个字节,可能还有其他选项,用来记录从第几个字节开始有数据的。
用4位二进制表示,写成10进制最大就是15
TCP首部最长是60个字节。15*4=60
所以选项部分最多可以有40个字节
作用:告诉TCP首部有多长,首部后面的都是数据。
保留:占6位,保留为今后使用,但目前应置为0 。
详情查看该博文
1.以字节为单位的滑动窗口技术
A的发送窗口由B的接收窗口决定。
阿发越小越以来旧值,大就修正比较及时
两台计算机传送数据,其中一个发送太块,另一个接收慢,则向快的发送一个数据包,告诉他慢一点或者停止,等缓存清空了然后发送数据包,可以继续传送。
TCP利用滑动窗口机制实现流量控制。
发送方的发送窗口取决于接收窗口rwnd和拥塞窗口cwnd的最小值。
接收方根据自己接收缓存的大小,动态的调整发送方的发送窗口大小。
防止互相等待的方法
出现拥塞的条件
对需求的总和>可用资源
例如:带宽 交换机的缓存 处理机
网络中有许多资源同时呈现供应不足-》性能变坏-》网络吞吐量将随输入负荷增大而下降。
拥塞控制:
防止过多的数据注入到网络中(全局性)
TCP 连接传输三个阶段:
连接建立-》数据传送-》连接释放
TCP连接的建立采用客户端服务器方式,主动发起连接建立的应用进程叫做客户端,而被动等待连接建立的应用进程叫做服务器。