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通信 -> 正文阅读

[系统运维]深入理解网络TCP通信

网络相关的Linux命令

#1.进入到当前Shell程序的进程
cd /proc/$$/
#2.一切皆为文件,获取该进程的文件描述符
cd fd
#3.将7文件描述符重定向到 /dev/tcp/www.baidu.com/80,这个命令实际上就是当前进程和百度的服务器进程简历了Socket连接
exec 7<> /dev/tcp/www.baidu.com/80
#4.先百度通过http协议发送请求
# "GET / HTTP/1.0\n"
# exec -e "GET / HTTP/1.0\n" -e 翻译转义字符
#5.IO重定向,把标准输出1重定向到刚才新建的百度socket的文件描述符7,百度在收到这个http请求之后,会将响应内容返回到7文件描述符号,此时读取7文件描述文件符中的数据即可
echo -e "GET / HTTP/1.0\n" 1>& 7
#6.cat读取的标准输入中的数据,此时可以将7描述符重定向到标准输入0 
cat 0<& 7
#7.关闭文件描述符7
exec 7>& -

通过上面6条指令,我们可以不借助浏览器就能向百度请求到首页。

传输控制层

传输控制层只负责双方的通信,通过“确认机制”来实现逻辑上的可靠连接,并不是真正的连接,双方都需要确认对方收到了数据。主要有TCPUDP
三次握手
建立socket连接,双方每次接受到对方的包时,都会向对方发送一个确认包ACK用于告诉对方已成功接受到包。
(1)Client向Server发送一个同步序列号seq1;
(2)Server收到之后发送一个ACK=seq1+1响应信号,并同时发送一个自己的同步序列号seq2给客户端,但是Server并不知道对方能否正确接受;
(3)Client收到之后,需要向Server发送一个ACK=seq2+1信号。这三个步骤必须都完成了 ,一个可靠的连接才建立。

请添加图片描述

四次分手
(1)Client发送FIN分手信号给Server
(2)Server只要收到了数据包,就回一个ACK;此时Server可能并不能马上断开连接,他可能还有数据为发送完毕,当他发送完毕之后,向Client发送一个FIN信号。
(3)Client接收到对方发来的FIN信号,会反馈一个ACK信号。此时双发才可以释放连接(主要是客户端释放主机的端口资源)
请添加图片描述

网络层

传输控制层只负责保证可靠的连接,但是具体的数据传输到哪台机器,需要交给网络层来处理,网络层负责两件事:

  • 路由判定(路由表)。判定目标地址是在当前局域网还其他网络里面。这就要依赖于IP协议。一个IP地址包含了两部分信息:网络号+主机号
  • 将数据转交给下一跳。下一跳可能是该局域网内的交换机也有可能是该网络的网关设备,取决于目标IP地址是否在当前网络内。

具体做法:在路由表中,将目标IP地址于路由表中的每个条目的子网掩码做与运算,算出来的目标则可以判定是在网关还是当前局域网的交换机。
route指令
请添加图片描述

数据链路层

网络层通过路由表可以知道将数据包交给下一个节点,但是具体怎么做?光靠网络层是解决不了的,我们来假设这么一个场景:我们要发送一个数据包给百度服务器,我们通过网络层的路由表已经知道需要将该数据包交给当前网络的网关,然而这个数据包的目标地址是填百度服务器的IP地址还是网关的IP地址呢?如果填网关的IP地址,我们虽然能找到该网关,但是转交给网关之后,网关又怎么来确定他的下一个节点呢?那如果填目标的IP地址,我们根本无法找到网关,也就不可能抵达百度服务器了。这个时候就需要数据链路层了。也就说,我们即需要目标的IP地址,同时需要知道网关的IP地址,此时数据链路层的ARP协议能根据IP找到MAC地址,而MAC地址也是独一无二的

  • MAC地址。网络节点的物理地址,全球独一无二。
  • ARP协议。实际上也是一张表,IP:MAC表,该设备的MAC地址映射了一个IP地址。因为外面要封装一个MAC地址,如果没有MAC地址,需要ARP请求获取到该网关IP对应的MAC。
    其工作原理就是:由于我们在网络层已经知道了数据包需要发给网关,这个网关的IP地址已经知道,此时,查询arp表,就能根据这个网关IP地址找到相应的MAC地址,在数据包的再套一层mac地址。
    请添加图片描述
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 12:08:59  更:2021-10-08 12:11:16 
 
开发: 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/15 18:13:45-

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