CCNA 必备:Linux 网络基础知识入门及 tcp 协议(三)|学习笔记

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 快速学习CCNA 必备:Linux 网络基础知识入门及 tcp 协议

开发者学堂课程【Linux网络进阶 - TCP/IP协议及OSI七层模型CCNP 必备:Linux 网络基础知识入门及 tcp 协议学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/552/detail/7627


CCNA 必备:Linux 网络基础知识入门及 tcp 协议(三)

五、TCP 协议特性

1.工作在传输层

2.面向连接协议

3.全双工协议(双向的传输)

4.半关闭

5.错误检查

6.将数据打包成段,排序

7.确认机制

8.数据恢复,重传

9.流量控制,滑动窗口

10.拥塞控制,慢启动和拥塞避免算法


六、TCP 包头

决定TCP 特性的因素,位于传输层,传输层的报文头部TCP在中间,它的外层是网络层的头部,TCP是传输层,传输层在里面,内层应该是会话层的头部。

TCP处于网络层和会话层中间的位置,对应字母T,T字母前面是网络层,再往后是S,表示会话层。传输层是中间传输层的第一种格式,当然也有UDP 格式,传输层的TCP 头部的报文格式如下图所示。该图是按照二进制绘制的。

一行是0到31个位,共32位。其中0到15表示源端口,16到31表示目标端口。

   image.png

1、端口号定义: TCP 协议 PORT

端口号相当于应用程序的唯一标识,即一个程序的地址。传输层通过 port 号,确定应用层协议Port number:

tcp: 传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路0-65535

udp:User Datagram Protocol,无连接的协议0-65535

而0-1023这是互联网数字分配机构(IANA)进行分配的,如果自己开发一个软件,必然要使用某个端口号,此时不要用0到1023了,因为国际上有关于1023的标准定义,已经被一些通用著名程序使用了,可以使用高一些的端口号。

像22(ssh)、著名的HTTP(80)、HTTPS(443)、dns(53)、ftp(21,20等)、tftp(69)、smtp(25)、pop3(110)、imap(143)、ternet(23)、mysql(3306)、Oracle(1521)、sql server(1433)。1024-49151用户端口或注册端口,要求并不严格,分配给程序注册为某应用使用。

49152-65535:动态端口或私有端口,客户端程序随机使用的端口,其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

2、源端口、目标端口

计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用 16 位表示的,可推算计算机的端口个数为 2^16 个

3、序列号

表示本报文段所发送数据的第一个字节的编号。在 TCP连接中所传送的字节流的每一个字节都会按顺序编号。

由于序列号由 32 位表示,所以每 2^32 个字节,就会出现序列号回绕,再次从 0 开始

4、确认号

表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:

我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号

5、数据偏移

表示 TCP 报文段的首部长度,共 4 位,由于 TCP 首部包含一个长度可变的选项部分,需要指定这个 TCP 报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。

该字段的单位是 32 位(即 4 个字节为计算单位), 4位二进制最大表示 15,所以数据偏移也就是 TCP 首部最大 60字节

1.标记位

  • URG

表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当 URG=1 时才有效

  • ACK

表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当 ACK=1 时,前面的确认号字段才有效。

TCP 规定,连接建立后,ACK 必须为 1,带 ACK 标志的 TCP 报文段称为确认报文段

  • PSH

提示接收端应用程序应该立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间。

如果为 1, 则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在 TCP

接收缓冲区中

  • RST

如果收到一个 RST=1 的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。

或者说明上次发送给主机的数据有问题,主机拒绝响应,带 RST 标志的 TCP 报文段称为复位报文段

  • SYN

在建立连接时使用,用来同步序号。当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段;当 SYN=1,ACK=1 时,表示对方同意建立连接。 SYN=1 ,说明这是一个请求建立连接或同意建立连接的报文。

只有在前两次握手中 SYN 才置为 1,带 SYN 标志的 TCP 报文段称为同步报文段

  • FIN

表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果 FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带 FIN 标志的 TCP 报文段称为结束报文段

7、通讯的面向连接:

   image.png

TCP是面向连接的协议,所谓面向连接就是在通讯之前要确保对方与自己有一个可靠的连接,它是通过三个过程来实现,俗称三次握手。例如,A想和B通讯,假设A是客户端,B是服务器地址和服务器。

客户端想连服务器的时候,如果用TCP协议,例如我们平时使用的HTTP 服务都是基于TCP协议,在进行通讯的时候,第一步要检查有没有可靠连接,会把标记的SYN(同步位)打为1,第一次的数据就以这样的方式发送出去了,发出去时也存有一个序列号,记作x。

发出去对方收到以后,确认并回ACK,然后再发一个确认表示第二步回来的信息收到了。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
25天前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
50 4
|
25天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
19 1
|
21天前
|
网络协议 Linux
Linux 网络配置
了解基本命令与权限后,如何让Linux系统联网?可通过编辑`/etc/sysconfig/network-scripts/`下的`ifcfg-ethX`文件配置网卡,其中`ethX`代表第X块网卡。对于DHCP自动获取或静态IP,需设置`BOOTPROTO`参数,并指定IP、子网掩码和网关等。配置完成后,运行`/etc/init.d/network restart`重启网络。DNS可在`/etc/resolv.conf`中设置,添加`nameserver`行即可,无需重启网卡。配置好后,可用`ifconfig`查看IP信息,并通过远程工具如SecureCRT连接服务器。
42 0
|
28天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
65 0
|
4天前
|
存储 安全 网络安全
云计算与网络安全:技术融合下的信息安全新挑战
【9月更文挑战第29天】在数字化浪潮的推动下,云计算服务如雨后春笋般涌现,为各行各业提供了前所未有的便利和效率。然而,随着数据和服务的云端化,网络安全问题也日益凸显,成为制约云计算发展的关键因素之一。本文将从技术角度出发,探讨云计算环境下网络安全的重要性,分析云服务中存在的安全风险,并提出相应的防护措施。我们将通过实际案例,揭示如何在享受云计算带来的便捷的同时,确保数据的安全性和完整性。
|
4天前
|
SQL 安全 算法
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第29天】随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者了解网络安全的重要性,提高自身的网络安全意识。
|
4天前
|
存储 SQL 安全
网络安全与信息安全:构建安全防线的关键策略
本文深入探讨了网络安全与信息安全领域的核心要素,包括网络安全漏洞、加密技术以及安全意识的重要性。通过对这些关键领域的分析,旨在为读者提供一套综合性的防护策略,帮助企业和个人在日益复杂的网络环境中保障数据安全。
14 4
|
3天前
|
SQL 安全 程序员
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第30天】在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及提升安全意识的重要性。我们将通过代码示例,深入理解网络安全的基础知识,包括常见的网络攻击手段、防御策略和加密技术的实际应用。同时,我们还将讨论如何提高个人和企业的安全意识,以应对日益复杂的网络安全威胁。
|
2天前
|
SQL 安全 算法
数字时代的守护者:网络安全与信息安全的现代策略
【9月更文挑战第31天】在数字化时代,网络安全与信息安全成为保护个人隐私和企业资产的关键。本文将深入探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性,旨在为读者提供防范网络威胁的策略和知识分享。
17 7
|
1天前
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第31天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将从网络安全漏洞、加密技术和安全意识等方面进行知识分享,帮助读者更好地了解和保护自己的网络安全。
下一篇
无影云桌面