B站:计算机网络Ⅴ —— 传输层

在这里插入图片描述

一、传输层协议UDP和TCP

TCP:需要将传输的文件分段传输,需要建立会话,可靠传输,流量控制
UDP:一个数据包就能够完成数据通信,不分段,不需要建立会话,不需要流量控制,不可靠传输(传输速度快);UDP协议也用于多播或者广播

1.传输层协议与应用层协议之间的关系

(1) 协议图示

在这里插入图片描述

DNS可以使TCP的53端口,也可以使用UDP的53端口,绝大多数是使用UDP的53端口

(2) 常见的应用层协议使用的端口

http (HyperText Transfer Protocol 超文本传输协议) = TCP+80
https (Hyper Text Transfer Protocol over SecureSocket Layer 超文本传输安全协议)= TCP+443
RDP (远程桌面协议) = TCP+3389 远程桌面协议
FTP (File Transfer Protocol 文件传输协议) = TCP+21
共享文件夹 = TCP+445
SMTP (Simple Mail Transfer Protocol简单邮件传输协议) = TCP+25
POP3 (Post Office Protocol - Version 3邮局协议版本3) = TCP+110
telnet = TCP+23
SQL Server = TCP+1433
DNS = UDP+53

(3) 服务和应用层协议之间的关系
  • 服务使用TCP或者UDP的端口侦听客户端请求
  • 客户端使用IP地址定位服务器,使用目标端口,定位服务
  • 可以在服务器网卡上设置,只开放必要的端口,实现服务器网络安全

FTP在传输层使用TCP协议
查看会话netstat -n
查看是哪个进程建立的会话 netstat -nb

二、网络安全

1. 如何在Windows上安装服务

安装windows可选组件,勾选相应服务,进行安装

2. 如何查看服务侦听的端口

netstat -a /netstat -an 查看侦听的端口
netstat -n 查看建立的会话
netstat -nb 查看建立会话的进程
telnet 对方ip地址 3389 测试到远程计算机某个端口是否打开

3. 如何更改服务使用默认端口

注册表修改端口,可以使我们的计算机更安全,比如远程桌面RDP的默认端口是3389,如果修改为4000,那么再使用RDP登录的时候就需要带上4000端口号,并且如果有人恶意扫描计算机端口,不理解4000端口的服务,可以迷惑入侵者。

三、传输层的主要功能

传输层为应用进程之间提供端到端的逻辑通信(网络层是为主机之间提供逻辑通信)
传输层还要对收到的报文进行差错检测
传输层提供面向连接和无连接的服务

1. 传输层为相互通信的应用进程提供了逻辑通信

在这里插入图片描述

通过传输层的协议加端口就能找到相应的服务。
网络层的IP协议实现了什么功能?实现数据包从一个地址到另一个地址
传输层的功能:如何让一台计算机上的应用程序找到另一个计算机上的应用程序(协议+端口)
在这里插入图片描述

2.传输层的端口

在这里插入图片描述
通过协议号来标记不同协议,TCP是6,UDP是17,ICMP是1
三类端口:
在这里插入图片描述
本地打开一个浏览器网页,本地作为客户端,会从客户端口号随机选择一个端口,服务器目标端口是80
netstat -n : find “ESTABLISHED”

四、UDP(user datagram protocol用户数据报协议)

1. UDP的主要特点

  • UDP是无连接的,即发送数据之前不需要建立连接
  • USP使用尽最大努力交付,即不保证可靠传输,同时也不使用拥塞控制
  • UDP是面向报文的,UDP没有拥塞控制,很适合多媒体通信的要求
  • UDP支持一对一,一对多,多对一和多对多的交互通信
  • UDP的首部开销小,只有8个字符

在这里插入图片描述

2.UDP的首部格式

在这里插入图片描述
计算检验后的时候加上伪首部:
伪首部并TCP&UDP数据报中实际的有效成分,其中的信息是从数据报所在IP分组头中提取的,既不向下传送,也不向上递交,而是仅仅为了计算校验和。
在这里插入图片描述
DNS服务:源端口选择客户端端口范围内随机一个(上图为55966),目标端口53

五、TCP(transmission control protocol传输控制协议)

1. TCP的主要特点

  • TCP是面向连接的传输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点
  • TCP提供可靠交付的服务
  • TCP提供全双工通信
  • 面向字节流

在这里插入图片描述在这里插入图片描述

2. TCP的连接

TCP把连接作为最基本的抽象,每一条TCP连接有两个端点。

  • TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口,TCP连接的端点叫做套接字
  • 端口号拼接到IP地址即可构成套接字
    在这里插入图片描述

3. TCP的可靠传输

(1) 停止等待协议

在这里插入图片描述
B不告诉A收到了,A就等待一个来回的时间,默认为没有收到。在这里插入图片描述
只要你没有告诉我,你收到了,我就认为你没有收到

a. ARQ

这种可靠传输协议常称为自动重传请求ARQ(Automatic Repeat reQuest):表明重重的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。

b. 信道利用率

在这里插入图片描述
停止等待协议的优点是简单,缺点是信道利用率太低
在这里插入图片描述
RTT是往返时间,TD发数据包的时间

  • 提高信道利用率:
    发送方连续发送多个分组,不必发完一个分组就停下来等待对方确认
    在这里插入图片描述
c. 连续ARP协议

在这里插入图片描述在这里插入图片描述

  • 发送窗口是5,连续发5个,等待第一个数据包回来,滑动窗口往右移,第一个数据包从缓存中删除。

  • 如果5个中有一个数据包没有回来,那么发送前一个数据包的确认结果,会重发剩余数据包

(2) TCP报文段的首部格式

在这里插入图片描述

  • 字段说明:
    URG=1:表明数据包要插队发送,优先发
    PSH=1:表明数据包到接收方的时候,要优先提交给目标应用程序
  • 窗口字段说明:
    建立会话的时候,一定要协商一下各自的接收数据的窗口,即TCP缓存大小保持一致。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

看确认号ack是怎么来的:可以理解为告诉web可以发几号数据包了

SYN攻击:伪造一些IP地址,要和目标IP地址建立TCP会话请求,导致目标IP地址计算机CPU占用急剧上升
Land攻击:让自己和自己建立很多会话,让自己瘫掉

(3) TCP如何实现可靠传输

在这里插入图片描述
如果丢失了数据包:
在这里插入图片描述
也可以是一个sack 选择性确认,只发丢失的包。

(4) 超时重传时间的选择

TCP每发送一个报文段,就对这个报文段设置一次计时器,只要计时器设置的重传时间到但还没有收到确认,就要重传这一段报文。
在这里插入图片描述
超时重传时间应略大于加权平均往返时间RTTs (上式计算结果),RFC2988推荐的α=1/8

3. TCP的流量控制

流量控制:解决通信两端处理速度不一致的问题。

  • 1)A根据B的接收串窗口,设置自己的发送窗口大小
    在这里插入图片描述
  • 2)A发送数据,B返回ack消息的时候会携带窗口大小信息,A的发送窗口根据值调整
    在这里插入图片描述
  • 3)B发送接收窗口为0,B准备处理数据,A调整发送窗口大小为0,停止发送
    在这里插入图片描述
  • 4)B处理完缓存中的数据,再向A发送ack=15和接收窗口大小,A重新开始发送数据

4. TCP的拥塞控制

在这里插入图片描述

(1) 慢开始和拥塞避免

cwnd(congestion window):拥塞窗口
发送方控制拥塞窗口的原则是:
- 只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去
- 只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数
在这里插入图片描述
在这里插入图片描述

  • 拥塞窗口两倍速上升,到达门限值之后+1上升
  • 新的慢开始门限值是出现网络拥塞时窗口值的1/2
  • 重新从1开始慢开始
(2) 快重传和快恢复

快重传:接收方在收到一个失序的报文段后就立即发出重复确认
快重传算法规定,发送方只要一连收到3个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计数器时间到期。
在这里插入图片描述
因为考虑到收到三个确认,判定网络还没有那么差,所以快恢复为当前拥塞窗口的1/2,而不采用慢开始

发送方的发送窗口的上限值应当取为接收方窗口和拥塞窗口这两个变量中较小的一个: 发送窗口的上限值 = Min{rwnd,cwnd} rwnd 接收窗口,cwnd拥塞窗口 ### 5.TCP传输连接管理 >- TCP传输连接三个阶段:连接建立,数据传送,连接释放 >- TCP连接的建立方式:客户服务器方式 >- 主动发起连接建立的应用进程叫做客户client,被动等待连接建立的应用进程叫做服务器server
(1) 连接建立:三次握手

在这里插入图片描述

a. 为什么要三次握手?
  • 两次会出现的问题:
    A发了一个请求a,B没有回复,A重发a1,B收到确认回复b1。过了一会儿,a到了B,B回复b,这个b确认A不搭理B,B在等A的数据,造成B的资源浪费。
b. 三次握手建立TCP连接的各状态

在这里插入图片描述

(2) 连接释放
a. 释放连接

在这里插入图片描述
在这里插入图片描述
A告诉B要结束,B告诉A已经收到结束消息:此时A不能再发,B可以再发
在这里插入图片描述
B发送完数据,告诉A发送完了

b. TCP释放连接的各状态

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐木金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值