第五章 传输层(上)

指引

  1. 运输层的功能
  2. 运输层协议UDP和TCP
  3. TCP可靠传输的实现
  4. TCP的流量控制
  5. TCP的拥塞控制
  6. TCP的运输连接管理

主要的协议

  • 网络层:IP(RIP OSPF BGP)ICMP IGMP ARP
  • 传输层:TCP UDP
  • 应用层:http https ftp DNS SMTP PoP3 RDP

传输层两个协议应用场景

  • 网络中的计算机通信无外乎有以下两种情况:
    • 要发送的内容多,需要将发送的内容分成多个数据包发送。
    • 要发送的内容少,一个数据包就能发送全部内容。

TCP:分段 编号 流量控制 拥塞避免 可靠传输 建立连接(协商参数:选择性确认,最大报文) 通信结束需要释放连接 netstat -n(查看会话)
UDP:要传输的内容一个数据包就能完成数据通信 不需要分段 流量控制 传输成功与否 由应用层判断 不建立会话 多播

传输层和应用层之间的关系
http=TCP+80端口
https=TCP+443端口
ftp=TCP+21端口
SMTP=TCP+25
POP3=TCP+110
RDP=TCP+3389
共享文件夹=TCP+445
SQL=TCP+1433
mySQL=TCP+3306
DNS=UDP+53 or TCP+53
telnet=TCP+23

应用层协议和服务之间的关系
wondows操作系统上的服务:

  • 为本系统提供的服务
  • 为网络中其他计算机提供服务的服务 使用TCP或者UDP的某个端口侦听客户端的请求。

查看本地侦听的端口:netstat -an
查看建立的TCP连接:netstat -n

客户端端口的作用

  • 客户端软件可以同时访问多个服务器,客户端会为每个出去的流量分配一个唯一的源端口。
  • 服务器上的服务侦听的端口不能冲突,否则将会造成服务器启动失败。

服务运行后在TCP或者UDP的某个端口侦听客户端请求
Web
ftp
smtp
pop3

  1. 用端口来定位服务
  2. 用IP地址来定位计算机
    查看自己计算机侦听的端口
    netstat -an
    测试远程计算机打开的端口
    telnet 10.7.1.53 21
    其中21代表端口,如果访问端口失败,说明不能访问这个服务
  3. IP协议的作用范围(提供主机之间的逻辑通信)
  4. TCP和UDP协议的作用范围(提供进程之间的逻辑通信)

运输层的两个主要协议
TCP/IP的运输层有两个不同的协议:

  1. 用户数据报协议UDP,UDP传送的协议数据单元是UDP报文或者叫用户数据报
  2. 传输控制协议TCP,TCP传送的协议数据单元是TCP报文段(segment)

TCP与UDP

  1. UDP在传送数据之前不需要事先建立连接,对方的运输层在收到UDP报文之后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。
  2. TCP则提供面向连接的服务。TCP不提供广播或者多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使得协议数据单元的首部增大很多,还要占用许多的数据处理资源。

端口和网络安全的关系

  • 客户端和服务器之间的通信使用应用层协议,应用层协议使用传输层协议+端口标识,如果在网络设备封掉TCP或者UDP的某个端口,就不能访问其对应的服务,就可以实现网络安全。如图在这里插入图片描述
  • 防火墙就是一个实现网络安全的工具,它可以只允许某项服务的流量进入,其它的拒绝进入。
  • 设置服务器网络安全,只开放必要的端口。
  • 在windows上可以通过设置TCP/IP筛选和windows防火墙来实现。

端口和服务之间的关系

TCP的端口

  • 端口用一个16位端口号进行标志。
  • 端口号只具有本地意义,即端口号只是为了标志本计算机应用层的各进程。在因特网中不同的计算机的相同端口号是没有联系的。

熟悉的三类端口:
(1)熟知端口,数值一般为0~1023。

  • FTP:21
  • TELNET:23
  • SMTP:25
  • DNS:53
  • HTTP:80
  • HTTPS:443
  • RDP:3389

(2)登记端口号,数值为1024~49151
(3)客户端口号,数值为49152~65535

UDP的首部格式

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

  • 从此图中,联系之前所学的IP数据报,可以发现,UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
  • 虽然UDP用户的数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的功能。
  • 该数据包在网络层的时候加上了目标地址和源地址,但是在运输层,加上了目标端口和源端口。

UDP的主要特点

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

用户数据报UDP有两个字段:数据字段和首部字段,首部字段有8个字节,由4个字段组成,每个字段都是两个字节。分别为源端口、目标端口、长度、校验和。

TCP协议的特点

  1. TCP 如何实现可靠传输
  2. TCP协议如何实现流量控制
  3. TCP协议如何避免网络拥塞

传输控制协议TCP概述

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

TCP的连接

  • TCP把连接作为最基本的抽象
  • 每一条TCP连接有两个端口。
  • TC连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点叫做套接字(socket)。
  • 端口号拼接到IP地址即构成了套接字。
  • 套接字socket=(IP地址:端口号)
  • 每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
    • TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}

TCP报文段格式

  • 在发文件时,文件数据是一段一段的,传输层会给文件增加一个TCP首部。

TCP首部如图:在这里插入图片描述

  • TCP报文段有固定字节段(20字节),之后有选项段(长度可变),它是可变长部分,不够的话可以用来填充。
  • 所以TCP首部长度并不是固定的,有固定部分和可变部分。
  • 在正常传数据时,大多数数据包就是20个字节的首部。但是有的数据包不仅仅用来传数据,还需要商量一些内容,在选项字段会增添一些数据。这个时候就不是20个字节了。
  • 首先是源端口和目标端口,各占用两个字节(16位)。
  • 然后是序号单独占用4个字节,用来表示该段数据的第一个字节,是整个数据部分的第几个字节。如图:在这里插入图片描述
  • 确认号(4个字节)指的是已收到的数据,下一个数据包是开头是第几个字节。如图:在这里插入图片描述在确认第1.2.3.4字节收到之后,就会发送下一个数据包以第5号字节开头的确认包。数据包送达之后,会去掉数据头,把5.6.7.8.9字节放进队列,下一个确认号为10。
  • 数据偏移:用来记录该条TCP报文段第几个字节之后,开始是数据段了。只有4位,最大数据只能表示到15,但是一位表示4个字节,总共60个字节。这里也就可以推测出选项部分最多40个字节,因为前面有20个字节的固定部分。
  • 保留字段:
    • URG表示数据段比较着急,需要优先传送
    • ACK 0表示确认号无效,1表示确认号有效
    • SYN 表示请求与对方建立会话时为1,对方同意时SYN也为1。注意发送请求时ACK为0,对方同意时,回复的ACK为1.。在会话建立之后的SYN就为0
    • PSH值为1,拥有优先权,可以直接提交给应用程序。
    • RSY如果为1,说明TCP会话拥有严重错误,需要重新建立连接才可以。
    • FIN为1时代表释放连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旺旺的碎冰冰~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值