计网-All

 路由器

路由器的功能与路由表的查看_路由器路由表_傻傻小猪哈哈的博客-CSDN博客路由基础-直连路由、静态路由与动态路由的概念_MikeVane-bb的博客-CSDN博客路由器的功能与路由表的查看_路由器路由表_傻傻小猪哈哈的博客-CSDN博客

直连路由就是路由器直接连了一个网段,他就在我隔壁我一眼就看的到我知道它。

静态路由好比路由器A发送信息到路由器B路过路由器C,此时人为告诉路由器A你要到路由器B你需要先到路由器C,即人为告诉路由器A应该怎么走,路由器A的表里就更新要到路由器B我要先到路由器C(即人为配置路由表)。

动态路由就好比,1、2、3路由器都是兄弟,假如路由器1附近有了新的路由器就马上告诉各个兄弟,这样消息就互通了,每个路由器都自动更新路由表。三个路由器1,2,3直连,3附近有了路由器,3就告诉2:我附近有了个路由器,2就告诉1:3附近有个路由器(自动的配置更新路由表)。

 ospf介绍_ospf的作用_道亦的博客-CSDN博客(一)OSPF协议 及ospf与RIP的比较_rip和ospf的区别和联系_小小妍的棉花糖的博客-CSDN博客​​​​​​

 三次握手四次挥手

【每天学习一点新知识】带你读懂TCP三次握手和四次挥手

TCP三次握手期间,为啥客户端和服务端的初始化序列号要求不一样_为什么客户端和服务端的初始序列号 isn 是不相同的?_该用户快成仙了的博客-CSDN博客

TCP的ISN为什么不能固定?_isn不能为1_星星落在海那边的博客-CSDN博客

20-1-tcp连接——初始化序列号(ISN)_song->_->的博客-CSDN博客

TCP三次握手详解:传输控制块TCB以及积极和消极的连接建立方式_tyler_download的博客-CSDN博客

【网络常识】为什么TCP建立连接需要三次握手,拆除连接需要四次挥手?_哔哩哔哩_bilibili
 

MSL(Maximum Segment Lifetime)最大报文生存时间:

        每个TCP实现必须选择一个MSL。它是任何报文段被丢弃前在网络内的最长时间。这个时间是有限的,因为TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL时间。RFC 793指出MSL为2分钟,现实中常用30秒或1分钟。

MSL、TTL及RTT的区别_除了rtt_Chen-ky的博客-CSDN博客

TCP数据报结构

在这里插入图片描述

①序号:Seq(Sequence Number)序号占32位,我发送的报文段中第一个数据字节的顺序号。 
②确认号:Ack(Acknowledge Number)确认号占32位,客户端和服务器端都可以发送,Ack = Seq + 1。
③标志位:每个标志位占用1Bit,共有6个,分别为 URG、ACK、PSH、RST、SYN、FIN,具体含义如下:

URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:建立一个新连接。
FIN:断开一个连接。

当SYN=1,ACK=0,表明是连接请求报文
当SYN=1,ACK=1,表明是同意了连接请求报文
确认号:ack = x,表示我想要接收到你的下一个序号为x的包
确认:ACK = 1,表示你的包我接收到了
序号:seq
标志号:ack
标志位: URG、ACK、PSH、RST、SYN、FIN

ISN也就相当于是seq,ISN是第一个序列号即首个序列号,seq描述的则是每个序列号

ACK:我接收到了你的报文

seq:我发送的报文段中第一个数据字节的顺序号 

ack:你向我发送的下一个报文段的第一个数据字节的顺序号(seq值)

SYN、FIN

三次握手:A发送什么报文给B+序列号+确认号+确认+状态变化

  1. 服务器先创建传输控制块TCB,时刻准备接受客户端的连接请求,此时服务器就进入了LISTEN状态;
  2. 客户端也是先创建传输控制块TCB,然后向服务器发送SYN报文,生成一个随机的初始序列号 seq=x ,无 确认号(ack),无 确认(ACK)。TCP客户端进程此时就进入了 SYN-SENT状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。
  3. 服务器收到请求连接报文后,发出同意连接报文。同意连接报文中应该SYN=1,生成一个随机的初始序列号seq=y,ack=x+1,ACK=1,TCP服务器进程进入了SYN-RCVD状态。这个报文也不能携带数据,但是同样要消耗一个序号。
  4. 客户端收到同意连接报文后,还要向服务器给出确认。确认报文的seq=x+1,ack=y+1,ACK=1,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。
  5. 当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。

四次挥手:A发送什么报文给B+序列号+确认号+确认+状态变化

  1. 客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面发送的数据的最后一个字节的序号加1),ack = v,ACK = 1,此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
  2. 服务器收到连接释放报文,发出确认报文,其序列号为seq=v(等于前面发送的数据的最后一个字节的序号加1),ack=u+1,ACK=1,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
  3. 客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)
  4. 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,假定此时的序列号为seq=w,ack=u+1,ACK = 1,由于在半关闭状态,服务器很可能又发送了一些数据,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
  5. 客户端收到服务器的连接释放报文后,必须发出确认,seq=u+1,ack=w+1,ACK=1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗ *∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。等待2*MSL时间,我是为了确认经过了2*MSL所在的时刻我会不会收到一个报文,假如收到了那就说明,我刚才发送的包丢失了,我需要再次发送,假如没有收到,那就说明对方接收了我的报文。
  6. 服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

状态解释


两张动图-彻底明白TCP的三次握手与四次挥手_tcp三次握手和4次挥手的过程_小书go的博客-CSD​​​​​​N博客'tTY

网络分析流量FIN_WAIT_2状态解释_fin_wait2_羌俊恩的博客-CSDN博客

网络协议学习笔记 · 11_tcp协议的状态中fin_wait_1状态表示_镜坛主的博客-CSDN博客

tcp四次挥手中FIN_WAIT1状态的最大时间是多长?_fin_wait1 时间_涛歌依旧的博客-CSDN博客

TCP在FIN_WAIT1状态到底能持续多久以及TCP假连接问题_dog250的博客-CSDN博客

关于FIN_WAIT1_finwait1_bytxl的博客-CSDN博客  

 三次握手:

客户端:关闭状态(CLOSED)->同步已发送状态(SYN-SENT)->已建立连接状态(ESTABLISHED)

服务器端:关闭状态(CLOSED)->监听状态(LISTEN)->同步收到状态(SYN-RCVD)->已建立连接状态(ESTABLISHED)

四次挥手:

客户端:已建立连接状态(ESTABLISHED)->终止等待1状态(FIN-WAIT-1)->终止等待2状态(FIN-WAIT-2)->时间等待状态(TIME-WAIT)->关闭状态(CLOSED)

服务器:已建立连接状态(ESTABLISHED)->关闭等待状态(CLOSE-WAIT)->最后确认状态(LAST-ACK)->关闭状态(CLOSED)

服务器tcp连接先释放,客户端TCP连接还没有释放,必须经过2 *MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

等待2*MSL时间,我是为了确认经过了2*MSL所在的时刻我会不会收到一个报文,假如收到了那就说明,我刚才发送的包丢失了,我需要再次发送,假如没有收到,那就说明对方接收了我的报文。

各层单位解释


OSI模型中各层单位-报文、报文段、数据报(Datagram)、数据包(Packet)和分组、帧的概念区别_数据包数据报是什么关系_学无止境2022的博客-CSDN博客

HTTP报文之"请求报文"和"响应报文"详解_请求报文是什么意思_辰兮要努力的博客-CSDN博客
ISN与seq,TCP三次握手期间,为啥客户端和服务端的初始化序列号要求不一样_为什么客户端和服务端的初始序列号 isn 是不相同的?_该用户快成仙了的博客-CSDN博客

TCP 与 UDP 面试题总结_tcp/udp面试-CSDN博客

TCP与UDP的区别及应用场景 

UDP是单向意愿我要跟你聊天,我就直接向你发包了,也不管你接收到了没有,你接收的包是否有问题,接收的包是不是顺序接收的。

TCP是双向的是愉悦的聊天,我向你发包同时我还保证你接收到了通过ACK,你接收的包没有问题,接收的包是顺序接收的,每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

 后退N帧协议总结_ack=sf-CSDN博客

TCP、UDP以及面试常见问题_udp半连接-CSDN博客

TCP与UDP的区别_tcp和udp的区别_会飞的IT蜗牛的博客-CSDN博客

网络面试题:TCP和UDP的9个区别是什么-CSDN博客

面试官:TCP和UDP两者的区别是什么?_面试tcp和udp_林小鹿@的博客-CSDN博客

经典面试题 TCP和UDP有什么区别?_tcp和udp的区别面试题-CSDN博客

四层模型及TCP 与 UDP 面试题总结_tcp/udp面试-CSDN博客

TCP和UDP协议的区别以及原理_tcp和udp的区别-CSDN博客

TCP和UDP的区别-CSDN博客

计算机网络之(2):TCP 相关知识——累积确认,三次握手,四次挥手,滑动窗口,超时重传、快速重传-CSDN博客

计算机网络必看之·TCP协议 - 知乎

HTTP介绍 

开头部分HTTP报文组成部分-CSDN博客

HTTP 协议详解_http协议讲解_爱躺平的威威的博客-CSDN博客

HTTP协议的详细介绍_http协议介绍-CSDN博客

【计算机网络】HTTP协议详解_http协议介绍_小孙的代码星球的博客-CSDN博客

Get和Post的区别 

GET和POST_怎么看网页get和post请求-CSDN博客

Get和Post的区别以及http的介绍-CSDN博客

GET 和 POST详解_菜鸟-传奇的博客-CSDN博客

post和get区别_post传输是异步加载吗-CSDN博客

get请求和post请求的区别(简洁易懂)-CSDN博客

get 和 post 请求有哪些区别?_简述post请求和get请求有什么不同?(-CSDN博客

get和post的区别-CSDN博客

GET和POST有什么区别?_79552299-CSDN博客

HTTP哪些常用的状态码和使用场景 

常见的HTTP状态码及应用场景_状态码过期时间应用场景-CSDN博客

HTTP协议之http状态码详解 300-305重定向_http协议300-CSDN博客

HTTP 常见的状态码有哪些,适用场景?_枉然的前端的博客-CSDN博客

HTTP 常见的状态码及适用场景_http code 场景_Silvia250的博客-CSDN博客

HTTP 常用的状态码及使用场景_請你喝杯Java的博客-CSDN博客

【HTTP】10分钟带你快速了解HTTP中常见的状态码(内附大量实例)_http状态码网页示例-CSDN博客

全网最全的HTTP状态码解读(Status Code=200/301/302/401/403/404/405/500/502/504)_status 200-CSDN博客

TCP如何保证有效传输及拥塞控制原理

TCP可靠传输:ARQ协议(停止等待、超时重传、滑动窗口、回退N帧、选择重传)_啊a阿花的博客-CSDN博客

返回N协议与选择重传协议的发送窗口大小问题_选择重传协议发送窗口最大尺寸-CSDN博客

计算机网络-为什么回退N协议、选择重传协议需要使用2^n-1_后退n帧协议发送窗口大小-CSDN博客 后退N帧协议总结_ack=sf-CSDN博客

详解TCP拥塞控制(计网)-CSDN博客

计算机网络必看之·TCP协议 - 知乎

计算机网络之(2):TCP 相关知识——累积确认,三次握手,四次挥手,滑动窗口,超时重传、快速重传-CSDN博客

TCP、UDP以及面试常见问题_udp半连接-CSDN博客

 TCP流量控制与拥塞控制原理分析-CSDN博客

TCP流量控制与拥塞控制(重要)_tcp流量控制和拥塞控制_厚积薄发ض的博客-CSDN博客

IP地址 

【TCP/IP】IP地址分类和特殊IP地址_主机在其子网中的特定主机地址-CSDN博客

IP地址有什么用?_获取ip地址有什么用-CSDN博客

 IP地址常见分类:A类、B类、C类、D类、E类_192001属于哪类ip地址-CSDN博客

IP地址使用,分类等详解_ip地址分类-CSDN博客

IP地址的分类及子网掩码的计算_ip地址掩码计算_花之亡灵的博客-CSDN博客

网络基础之IP地址分类及划分-CSDN博客

什么是SQL注入

sql注入详解_~Echo的博客-CSDN博客

究竟什么是SQL注入?_哪里不存在sql注入吗-CSDN博客

SQL注入详解(全网最全,万字长文)-CSDN博客

SQL注入攻击介绍_什么是sql注入攻击_99度灰的博客-CSDN博客

什么是SQL注入_说一说你对sql注入的理解-CSDN博客

什么是SQL注入?-CSDN博客

SQL注入_什么是sql注入-CSDN博客

XSS攻击 

XSS攻击详解_卖菜的小白的博客-CSDN博客

一文搞懂 XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持_sql注入、重定向、crsf_极客飞兔的博客-CSDN博客

网络安全-跨站脚本攻击(XSS)的原理、攻击及防御_xss攻击-CSDN博客

网络五层模型 

计算机网络——五层与七层模型_五层模型和七层模型-CSDN博客

这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我-CSDN博客

数据链路层,数字信号如何转换为电信号(七)_1010怎么转换为电信号-CSDN博客

计算机网络五层模型详解_网络模型的五层结构-CSDN博客

通俗易懂讲解计算机网络五层模型是如何相互协作的_传输层物理层-CSDN博客

TCP与UDP对应的协议:

基于TCP或UDP协议的应用层协议_基于udp的应用层协议-CSDN博客​​​​​​

TCP/IP 应用层常用协议_tcp/ip应用层协议_鹤冲天Pro的博客-CSDN博客

【计算机网络】传输层TCP协议-CSDN博客

TCP/IP协议-应用层协议端口号及各层协议数据单元_列出tcpip参考模型中各层间的接口数据单元-CSDN博客

一文详解 TCP与UDP 协议_tcp udp数据包-CSDN博客

【计算机网络】TCP / IP 四层协议_tcp/ip协议包含哪几层_L Jiawen的博客-CSDN博客

什么是超文本?_什么是超文本,举几个例子-CSDN博客

forward和redirect的区别是什么?_forward redirect-CSDN博客

请求转发和请求重定向有什么区别?_请求转发和重定向的区别-CSDN博客

什么是jsp?-CSDN博客

Servlet是什么_什么是servletr_顺其自然~的博客-CSDN博客

输入url到页面显示经过哪几步_在浏览器中从输入url到显示页面,其工作流程是什么样的-CSDN博客

浏览器输入url到页面展示出来的全过程_浏览器从输入url到显示页面的过程_cute_ming的博客-CSDN博客

【精选】从URL到浏览器显示页面的流程-CSDN博客

https协议 的工作过程_https工作过程_鸢也的博客-CSDN博客

【精选】HTTPS 的传输过程_https传输过程-CSDN博客

什么是数字签名?-帅地玩编程

Cookie和Session的区别 

Cookie和Session的区别(面试必备)_cookie和session的作用和区别-CSDN博客

【精选】彻底了解Cookie和Session的区别(面试)_session和cookie的区别-CSDN博客

Cookie和Session的区别与联系_.简述session对象和cookie的区别于联系。-CSDN博客

cookie和session的详解和区别-CSDN博客

Cookie和Session详解_cookie session-CSDN博客

session和cookie的区别-CSDN博客

Cookie 和 Session_cookie和session-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值