您现在的位置是:主页 > news > 杭州集团网站建设/营销推广的方法有哪些
杭州集团网站建设/营销推广的方法有哪些
admin2025/5/7 13:53:21【news】
简介杭州集团网站建设,营销推广的方法有哪些,个人注册域名网站怎么做,前几年做啥网站能致富【笔记】tcp/ip五层模型层概念,三次握手、四次挥手等tcp/ip五/七层模型一. 应用层协议Linux操作演示二. 传输控制层2.1 协议2.2 三次握手和四次挥手2.2.1 三次握手Linux操作演示2.2.2 四次挥手为什么需要四次挥手为什么客户端需要等待2MSL三. 网络层3.1 网络号3.2 网…
【笔记】tcp/ip五层模型层概念,三次握手、四次挥手等
- tcp/ip五/七层模型
- 一. 应用层
- 协议
- Linux操作演示
- 二. 传输控制层
- 2.1 协议
- 2.2 三次握手和四次挥手
- 2.2.1 三次握手
- Linux操作演示
- 2.2.2 四次挥手
- 为什么需要四次挥手
- 为什么客户端需要等待2MSL
- 三. 网络层
- 3.1 网络号
- 3.2 网关
- 四. 链路层
tcp/ip五/七层模型
五层分别是:
- 应用层
- 传输控制层
- 网络层
- 链路层
- 物理层
少了两层是:
应用层下面的表示层
, 会话层
. 统一并做应用层
五层模型的有点是解耦, 互相可替换, 不同层不关心其他层的具体实现.
一. 应用层
最上级的一层, 也就是我们平时开发接触最多的一层. 这一层主要关心的是业务方面的网络请求响应, 数据展示, 会话管理等.
协议
其中代表:
Http协议. 有方法类型, 请求头, 请求体. 响应有响应码, 响应头, 响应体
Linux操作演示
# 打开连接
nc www.baidu.com 80
# 然后发送http请求,回车2次
# 第一个是方法名. 然后斜杠是uri请求路径, 后面是协议名和版本
GET / HTTP/1.0
二. 传输控制层
主要是建立连接
2.1 协议
代表:
TCP协议, 是可靠的,面向连接的传输协议
为什么可靠, 因为三次握手和四次挥手.
2.2 三次握手和四次挥手
2.2.1 三次握手
为什么要三次握手, 因为客户端和服务端分别需要确认对方能接收和发送消息.
- syn: 发送请求
- ack: 确认,响应
三次握手后, 各自开辟资源后, 建立了连接.
Linux操作演示
#表示查看该eth0网卡关于80端口的抓包
tcpdump -nn -i eth0 port 80
如图表示 ip尾号是174端口号是35726的进程向ip尾号是129端口号是80的进程建立连接
- [S] 表示发起握手
- [S.] 表示ack回应握手, 同时也向客户端发起握手
- [.] 表示客户端回应握手
2.2.2 四次挥手
在传输完数据以后, 需要进行四次挥手.
为什么需要四次?
因为客户端和服务器分别需要向对方发送断开的申请, 双方也会向对方回应这个申请.
- fin: 断开连接
- ack: 确认,响应
为什么需要四次挥手
当挥手第二次后宣告的了主动关闭方不会再主动发送数据,但仍然可以接收数据,此时处于半关闭状态。这样被动关闭方有足够的时间去处理以前没有处理完的数据,它可能还有一部分数据没发送出去需要处理,在此之后提出主动关闭连接
tcpdump可以看到 [F]就是FIN
为什么客户端需要等待2MSL
保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失. 服务器会在超时后重新发送FIN请求, 这时2MSL就能保证客户端能收到并再次响应. 客户端会重新计时
三. 网络层
涉及到的有:
- ip
- 掩码
- 网关
- dns
3.1 网络号
我们上网的设备, 都会分配一个ip, 比如 192.168.1.3
, 192.168.2.4
, 它们都分别在不同的网络中, 网络有网络号.
计算网络号, 就是把ip和掩码按位与运算.
我们常见的掩码比如是: 255.255.255.0
, 这和ip一样都可以换成bit位.
换算出来就是
1111 1111.(省略) 1111 1111 . 1111 1111 . 0000 0000
那192, 168, 1 前三位进行与运算, 结果不变, 第四位和0与运算, 得到0 , 即
192.168.1.3网络号是192.168.1.0
3.2 网关
在linux用route -n
命令
这是我们机器的路由表. 里面有
Destination目标地址
, 有Gateway网关
, 有Genmask掩码
.
它的作用是. 比如我们请求www.baidu.com, 查ip可知是110.242.68.4, 将其快速的和掩码按位与得到网络号, 再和目标地址匹配.
这里可知匹配得到的是第一个0.0.0.0的匹配, 这个其实也是默认网关.
然后它就将数据包交给对应的网关10.9.0.1, 下一跳处理
而如果是内网, ip地址肯定前三位和自己的ip一样, 比如自己的是172.17.0.3, 内网另一个ip是172.17.0.4, 根据路由表进行与运算, 可以匹配到172.17.0.0那个网关的网络号, 此时就不会用那个外网的网关了
四. 链路层
上面网络层可知, 将请求发送到其他网络, 需要根据网络号找到对应的网关, 传到下一跳, 这里需要再根据mac地址来确认
命令arp -a
可以看到不同的网关地址对应的mac地址.
从客户端请求到服务器, 中间经过了n个网络, 数据包中不变的目标的ip地址, 变化的是下一跳的mac地址.
- 节点在接收到请求后, 先是判断这个ip地址是否为自身
- 如果不是, 就通过ip, 掩码得到网络号
- 通过路由表找到对应的网关
- 通过arp找到网关对应的mac地址
- 交给该mac地址的节点处理, 后面轮回
这样通过mac地址一个个下一跳连起来的, 类似于链表结构的, 就叫链路层