路由器
路由器的功能与路由表的查看_路由器路由表_傻傻小猪哈哈的博客-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三次握手期间,为啥客户端和服务端的初始化序列号要求不一样_为什么客户端和服务端的初始序列号 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+序列号+确认号+确认+状态变化
- 服务器先创建传输控制块TCB,时刻准备接受客户端的连接请求,此时服务器就进入了LISTEN状态;
- 客户端也是先创建传输控制块TCB,然后向服务器发送SYN报文,生成一个随机的初始序列号 seq=x ,无 确认号(ack),无 确认(ACK)。TCP客户端进程此时就进入了 SYN-SENT状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。
- 服务器收到请求连接报文后,发出同意连接报文。同意连接报文中应该SYN=1,生成一个随机的初始序列号seq=y,ack=x+1,ACK=1,TCP服务器进程进入了SYN-RCVD状态。这个报文也不能携带数据,但是同样要消耗一个序号。
- 客户端收到同意连接报文后,还要向服务器给出确认。确认报文的seq=x+1,ack=y+1,ACK=1,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。
- 当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。
四次挥手:A发送什么报文给B+序列号+确认号+确认+状态变化
- 客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面发送的数据的最后一个字节的序号加1),ack = v,ACK = 1,此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
- 服务器收到连接释放报文,发出确认报文,其序列号为seq=v(等于前面发送的数据的最后一个字节的序号加1),ack=u+1,ACK=1,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
- 客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
- 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,假定此时的序列号为seq=w,ack=u+1,ACK = 1,由于在半关闭状态,服务器很可能又发送了一些数据,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
- 客户端收到服务器的连接释放报文后,必须发出确认,seq=u+1,ack=w+1,ACK=1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗ *∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。等待2*MSL时间,我是为了确认经过了2*MSL所在的时刻我会不会收到一个报文,假如收到了那就说明,我刚才发送的包丢失了,我需要再次发送,假如没有收到,那就说明对方接收了我的报文。
- 服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。
状态解释
两张动图-彻底明白TCP的三次握手与四次挥手_tcp三次握手和4次挥手的过程_小书go的博客-CSDN博客'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,你接收的包没有问题,接收的包是顺序接收的,每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
TCP与UDP的区别_tcp和udp的区别_会飞的IT蜗牛的博客-CSDN博客
面试官:TCP和UDP两者的区别是什么?_面试tcp和udp_林小鹿@的博客-CSDN博客
经典面试题 TCP和UDP有什么区别?_tcp和udp的区别面试题-CSDN博客
四层模型及TCP 与 UDP 面试题总结_tcp/udp面试-CSDN博客
TCP和UDP协议的区别以及原理_tcp和udp的区别-CSDN博客
计算机网络之(2):TCP 相关知识——累积确认,三次握手,四次挥手,滑动窗口,超时重传、快速重传-CSDN博客
HTTP介绍
HTTP 协议详解_http协议讲解_爱躺平的威威的博客-CSDN博客
【计算机网络】HTTP协议详解_http协议介绍_小孙的代码星球的博客-CSDN博客
Get和Post的区别
GET和POST_怎么看网页get和post请求-CSDN博客
post和get区别_post传输是异步加载吗-CSDN博客
get 和 post 请求有哪些区别?_简述post请求和get请求有什么不同?(-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博客
计算机网络之(2):TCP 相关知识——累积确认,三次握手,四次挥手,滑动窗口,超时重传、快速重传-CSDN博客
TCP流量控制与拥塞控制(重要)_tcp流量控制和拥塞控制_厚积薄发ض的博客-CSDN博客
IP地址
【TCP/IP】IP地址分类和特殊IP地址_主机在其子网中的特定主机地址-CSDN博客
IP地址常见分类:A类、B类、C类、D类、E类_192001属于哪类ip地址-CSDN博客
IP地址的分类及子网掩码的计算_ip地址掩码计算_花之亡灵的博客-CSDN博客
什么是SQL注入
究竟什么是SQL注入?_哪里不存在sql注入吗-CSDN博客
SQL注入攻击介绍_什么是sql注入攻击_99度灰的博客-CSDN博客
XSS攻击
一文搞懂 XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持_sql注入、重定向、crsf_极客飞兔的博客-CSDN博客
网络安全-跨站脚本攻击(XSS)的原理、攻击及防御_xss攻击-CSDN博客
网络五层模型
计算机网络——五层与七层模型_五层模型和七层模型-CSDN博客
这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我-CSDN博客
数据链路层,数字信号如何转换为电信号(七)_1010怎么转换为电信号-CSDN博客
通俗易懂讲解计算机网络五层模型是如何相互协作的_传输层物理层-CSDN博客
TCP与UDP对应的协议:
基于TCP或UDP协议的应用层协议_基于udp的应用层协议-CSDN博客
TCP/IP 应用层常用协议_tcp/ip应用层协议_鹤冲天Pro的博客-CSDN博客
TCP/IP协议-应用层协议端口号及各层协议数据单元_列出tcpip参考模型中各层间的接口数据单元-CSDN博客
一文详解 TCP与UDP 协议_tcp udp数据包-CSDN博客
【计算机网络】TCP / IP 四层协议_tcp/ip协议包含哪几层_L Jiawen的博客-CSDN博客
forward和redirect的区别是什么?_forward redirect-CSDN博客
请求转发和请求重定向有什么区别?_请求转发和重定向的区别-CSDN博客
Servlet是什么_什么是servletr_顺其自然~的博客-CSDN博客
输入url到页面显示经过哪几步_在浏览器中从输入url到显示页面,其工作流程是什么样的-CSDN博客
浏览器输入url到页面展示出来的全过程_浏览器从输入url到显示页面的过程_cute_ming的博客-CSDN博客
https协议 的工作过程_https工作过程_鸢也的博客-CSDN博客
【精选】HTTPS 的传输过程_https传输过程-CSDN博客
Cookie和Session的区别
Cookie和Session的区别(面试必备)_cookie和session的作用和区别-CSDN博客
【精选】彻底了解Cookie和Session的区别(面试)_session和cookie的区别-CSDN博客
Cookie和Session的区别与联系_.简述session对象和cookie的区别于联系。-CSDN博客