(*长期更新)软考网络工程师学习笔记——Section 8 传输层

简介: (*长期更新)软考网络工程师学习笔记——Section 8 传输层

一、传输层的基本协议


传输层依靠的基本协议是TCP(传输控制协议)和UDP(用户数据报协议),传输层的相关知识由这两部分协议展开。


二、面向连接服务和无连接服务


1、面向连接服务,分为三步:建立连接、使用连接和释放连接,即首先要建立一条通信线路,然后在正式传输数据时,数据分组就不再需要携带目的地址,可靠性高,但它相比无连接服务其效率低,例如TCP协议。

2、无连接服务,由系统选定路线进行传输,收发方只有在传输数据时才处于激活状态,其下层资源动态分配,相比面向连接服务,它更加灵活、通信比较迅速且开销小,但可靠性低,不能防止报文出错,例如IP协议、UDP协议。


三、TCP


(一)TCP的基本概念


TCP是一种可靠的、面向连接服务的字节流服务,源主机在传输数据时要先与目标主机建立连接,然后被编号的数据段按顺序进行收发,且同时对每个数据段进行确认,从而保证了可靠性,若没有收到确认则会再次发送。


(二)TCP的三种机制


TCP是建立在无连接服务的IP基础上,通过三种机制实现面向连接服务:

1、使用序号对数据报标记,便于接收服务向高层传递数据之前调整错序的数据报。

2、通过使用确认、校验和定时器系统提供可靠性。

3、使用窗口机制调整数据流量,即可变大小的滑动窗口协议减小接收方缓冲区满而造成丢失数据报文的可能性,从而实现流量控制。


(三)TCP的报文首部格式


以太网的最大传输单元(MTU)是1518byte,其中首部18byte,IP首部中最少为20byte,故以太网可以传送的最大TCP段为1480byte。

TCP的报文首部格式有以下:

1667131945741.jpg

1、源端口

字段长度为16位,用于标识源端和目标端的应用进程,端口号取值范围为0-65535。

2、序列号

又称为报文段序号,字段长度为32位。

3、确认号

字段长度为32位,即对方下一个报文段的第一个数据字段的序号。

4、报头长度

又称为数据偏移字段,字段长度为4位,单位32位,没有选项字段的TCP头部长度为20字节,最多可以有60字节的TCP头部长度。

5、保留字段

字段长度为6位,通常设置为0。

6、标记

当请求方发出同步SYN连接请求后,等待对方回答同步SYN、确认ACK,这样防止建立错误的连接。

(1)紧急URG:紧急有效,需要尽快传送;

(2)确认ACK:建立连接后的报文回应,ACK置1;

(3)推送PSH:接收方应将该报文尽快交给上层协议,无需等待缓存满;

(4)复位RST:重新连接;

(5)同步SYN:发起连接,即当TCP实体要建立连接时,其段头中的SYN标志置1;

(6)终止FIN:释放连接。

7、窗口大小

字段长度为16位,该字段用于进行流量控制(通过可变大小的滑动窗口协议),作为接收方让发送方设置其发送窗口的依据,该值为期望下一次接收的字节数。

8、校验和

字段长度为16位,对整个TCP报文段进行校验和计算,并由目标端进行验证。

9、紧急指针

字段长度为16位,它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

10、选项

字段长度可变,可变至40字节,为保证报文长度是32位的倍数,因此还需要填充0。


(四)TCP三次握手建立连接


TCP协议使用三次握手机制建立连接,其目的是使数据段的发送和接收同步,同时也向其它主机表明其一次可接收的数据量(窗口大小)并建立逻辑连接,双方通信前源主机和目标主机都处于CLOSED状态。

1、第一次握手

源主机(发送方)发送一个SYN=1的TCP数据段,同时标明初始序号ISN,ISN是一个随时间变化的随机值,即SYN=1,SEQ=x,源主机进入SYN-SENT状态。

2、第二次握手

目标主机(接收方)收到SYN包后,发回确认数据报文ACK,即ACK=1,同时确认序号字段,表明目标主机期待收源主机下一个数据段的序号,即ACK=x+1。

数据段中另外设置SYN=1,并包含目标主机的段初始序号y,即ACK=1,确认序号ACK=x+1,SYN=1,自身序号SEQ=y,此时目标主机进入SYN-RCVD状态,源主机进入ESTABLISHED状态。(当发生错误连接时,会以RST包回应拒绝连接)

3、第三次握手

源主机再回送一个确认数据段,同样带有递增的发送序号和确认序号,即ACK=1,确认序号ACK=y+1,自身序号SEQ+1。经过三次握手后,源主机就可以与目标主机互相收发数据。


(五)TCP四次挥手释放连接


TCP释放连接分为四步,此时源主机和目标主机都处于ESTABLISHED状态。

1、第一次挥手

源主机发送一个释放报文,FIN=1,自身序号SEQ=x,源主机进入FIN-WAIT状态。

2、第二次挥手

目标主机接收到报文后发送确认报文,即ACK=1,确认序号ACK=x+1,自身序号SEQ=y,目标主机进入CLOSE-WAIT状态,此时TCP连接处于半关闭状态,源主机已经停止发送数据,但目标主机仍可发送数据。源主机在接收到ACK报文后等待目标主机发出FIN报文。

3、第三次挥手

目标主机确认没有数据后,发出释放报文,即FIN=1,ACK=1,确认序号ACK=x+1,自身序号SEQ=z,此时目标主机进入LAST-ACK状态。

4、第四次挥手

源主机接收到释放报文后,对目标主机发送确认报文,即ACK=1,确认序号ACK=z+1,自身序号SEQ=x+1,等待一段时间确定确认报文到达后,源主机进入CLOSED状态,目标主机在接收到确认报文后,也进入CLOSED状态。


例如,主机甲向主机乙发送了一个TCP连接建立请求,主机乙给主机甲的先应报文中,标志字段SYN=1,ACK =1,FIN=0。


四、UDP


(一)UDP的基本概念


用户数据报协议(UDP)是一种不可靠的、无连接服务的数据报服务,它在IP层之上提供了端口寻址能力,数据附加源端口号和目标端口号等UDP报头字段后,直接发往目的主机,在传送数据较少且较小的情况下,UDP比TCP显得更加高效。


(二)UDP首部结构


UDP的首部格式有以下:

1667132034058.jpg

1、源端口号

字段长度为16位,与TCP中的端口号字段作用相同,用于标识源端的应用进程,在需给对方回信时用,不需要时为0。

2、目标端口号

字段长度为16位,与TCP中的端口号字段作用相同,用于标识目标端的应用进程,在需目标交付报文时用到。

3、长度字

字段长度为16位,用于标明UDP头部和UDP数据的总长度字节。

4、校验和

该字段为可选项,长度为16位,用于校验UDP头部和UDP数据,有错时就丢弃。


(三)协议端口号


协议端口号是用于标识目标主机进程的方法,TCP/IP协议中使用16位的端口号来标识端口,即端口号的取值为0-65535。

协议端口号可分为系统端口、登记端口和客户端使用端口三种。


image.png


1、系统端口

以下是常用的系统端口协议号(重点!!!):

协议号 英文名称 用途
20 FTP-DATA FTP数据传输
21 FTP FTP控制
22 SSH SSH登录
23 telnet 远程登录
25 SMTP 简单邮件传输协议
53 DNS 域名解析
67 DHCP DHCP服务器开启,用于监听和接收客户请求信息
68 DHCP 客户端开启,用于接收DHCP服务器的消息回复
69 TFTP 简单FTP
80 HTTP 超文本传输
110 POP3 邮局协议
143 IMAP 交互式邮件存取协议
161 SNMP 简单网管协议
162 SNMP(trap) SNMP Trap报文
443 HTTPS 加密的超文本传输服务


2、登记端口

该端口是为没有熟知端口号的应用程序使用的,端口号范围为1024-49151。


3、客户端使用端口

该端口在客户端进程运行时动态使用,使用完后,进程会释放端口,端口号范围为49152-65535。


(四)TCP和UDP的对比


由于TCP协议的实现较为复杂,它采用三次握手建立连接,传输过程中可以实现可靠传输、流量控制以及拥塞控制,从而带来了较大的开销;而UDP协议主要通过端口号来实现传输层次的寻址,其开销较小。


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
负载均衡 网络协议 算法
|
1月前
|
网络协议 安全 测试技术
Nping工具详解:网络工程师的瑞士军刀
### Nping工具详解:网络工程师的瑞士军刀 Nping是Nmap项目的一部分,支持TCP、UDP、ICMP和ARP等多种协议,用于生成和分析网络数据包。它提供灵活的命令行界面,适用于网络探测、安全测试和故障排除。本文介绍Nping的基础与高级用法,包括发送不同类型的网络请求、自定义TCP标志位、路由跟踪等,并通过实战案例展示其应用。掌握Nping有助于更好地理解和管理网络环境。 (239字符)
95 9
|
3月前
|
网络协议 网络架构
网络工程师必知:什么是OSPF多区域?如何配置?
网络工程师必知:什么是OSPF多区域?如何配置?
171 2
网络工程师必知:什么是OSPF多区域?如何配置?
|
3月前
|
负载均衡 网络协议 算法
|
3月前
|
域名解析 网络协议 安全
|
3月前
|
安全 网络安全 网络虚拟化
什么是划分子网?网络工程师划分子网有啥技巧?
在网络工程中,划分子网是将大网络分割成多个小子网的技术,旨在优化网络性能、提升安全性和管理效率。本文介绍了子网的基本概念、划分子网的方法与步骤、网络工程师的技巧及实际应用案例,强调了合理规划的重要性。
297 4
|
3月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
265 2
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
90 17
|
2月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
64 10

热门文章

最新文章