IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP学习心得 -> 正文阅读

[网络协议]TCP/IP学习心得


参考
https://www.w3school.com.cn/tcpip/tcpip_intro.asp
https://blog.nowcoder.net/n/c58243574f3b49b1ac8f6d76aa5965bc?from=nowcoder_improve

Ⅰ TCP/IP协议分层

TCP/IP协议族按照层次由上到下,层层包装。

Alt

应用层

向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。

运输层

提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。

网络层

负责相邻计算机之间的通信。其功能包括三方面。
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。

二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。

三、处理路径、流控、拥塞等问题。

网络接口层

这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

Ⅱ IP地址

每个计算机必须有一个 IP 地址才能够连入因特网。
每个 IP 包必须有一个地址才能够发送到另一台计算机。
TCP/IP 使用 32 个比特来编址。一个计算机字节是 8 比特。所以 TCP/IP 使用了 4 个字节。
一个计算机字节可以包含 256 个不同的值:
00000000、00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000 … 直到 11111111。
这就是为什么使用TCP/IP协议的地址是0到255。

Ⅲ 在 TCP/IP 内部

在 TCP/IP 中包含一系列用于处理数据通信的协议:

TCP (传输控制协议) - 应用程序之间通信
UDP (用户数据包协议) - 应用程序之间的简单通信
IP (网际协议) - 计算机之间的通信
ICMP (因特网消息控制协议) - 针对错误和状态
DHCP (动态主机配置协议) - 针对动态寻址
TCP/IP 意味着 TCP 和 IP 在一起协同工作。
TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。
IP 负责计算机之间的通信。
TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。
IP 负责将包发送至接受者。

Ⅳ 关于三次握手和四次挥手

几个TCP协议首部的标志位

SYN:同步序号。
FIN:发端完成发送任务。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文段交给应用层。
RST:重建链接。

几个状态

CLOSED:关闭状态,没有连接活动正在进行。
LISTEN:监听状态,服务器正在等待连接进入。
SYN_RCVD:收到一个连接请求,尚未确认。
SYN_SENT:已经发出连接请求,等待确认。
ESTABLISHED:连接建立,正常数据传输状态。
FIN_WAIT_1:(主动关闭)已经发送关闭请求,等待确认。
FIN_WAIT_2:(主动关闭)收到对方关闭确认,等待对方关闭请求。
TIME_WAIT:完成双向关闭,等待所有分组消失。
CLOSING:双方同时尝试关闭,等待对方确认。
CLOSE_WAIT:(被动关闭)收到对方关闭请求,已经确认。
LAST_ACK:(被动关闭)等待最后一个关闭确认,并等待所有分组消失。

英文缩写

ack:它和大写的ACK不同,它不是标志位,只是一个确认序号,它的序号值表示接收端期待接受的下一个报文的序号值。例如:ack = x+1 表示接收端现在已经确认收到前x个报文,接下来该接收第x+1个报文。
seq:表示当前发送的报文序号,后面依次加一,初始序号是动态随机生成的(后面有详细解释为什么要随机)。
MSL:Maximum Segment Lifetime,最长报文寿命,假设具有最大跳数限制的IP分组在网络中存在的时间不可能超过MSL秒(每个IP分组都有一个TTL,没经过一跳路由器,TTL-1)。RFC1122建议MSL = 2min,现在的网络常设为30s。

Ⅴ 三次握手

建立连接的过程共需要三个报文段,故称“三次握手”,建立连接的过程如下图所示。
在这里插入图片描述
具体过程:

  1. 服务启动后一直处于监听状态,等待客户端的连接请求。客户端发起连接请求,首部标志位SYN置为1,同时选择一个序列号seq = x,这时客户端进入SYN_SENT状态。(SYN报文段不能携带数据)。
  2. 服务器收到连接请求后,结束监听状态,给客户端回复确认报文,SYN = 1,ACK = 1,seq = y,确认号ack = x+1,进入SYN_RCVD状态。
  3. 客户端收到服务器的确认报文后,结束监听状态,给客户端回复确认报文,SYN = 1,ACK = 1,seq = x+1,ack = y+1。随后进入ESTABLISHED状态,此后双方可以进行全双工通信,此后报文中标志位SYN均等于0。

Ⅵ 四次挥手

在这里插入图片描述
具体过程:

  1. 客户端首先发出拆除连接报文,FIN = 1,进入FIN_WAIT_1状态。
  2. 服务器收到拆除连接请求,回复确认报文,ACK = 1。
  3. 客户端收到回复进入FIN_WAIT_2 状态,等待服务器发送拆除连接报文,此时服务器还可以给客户端发送数据。服务器若没有要发送的数据,则发送一个拆除连接报文,FIN = 1。
  4. 客户端对此报文回复确认,之后并不会马上关闭连接,而是进入一个TIME_WAIT状态,等待2MSL后,才进入CLOSED状态。而服务器在收到回复报文后就立即进入CLOSED状态。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 21:05:20  更:2022-02-09 21:06:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:33:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码