TCP-IP基础

TCP-IP基础

2.1 TCP/IP 网络分层

同一设备:进程通信方式:管道,消息队列,共享内存,信号

不同设备:通用的网络协议 TCP/IP

tcp-ip协议.png TCP-IP.png

应用层

专注于为用户提供应用功能:HTTP,HTTPS,FTP,Telnet,DNS,SMTP

传输层

应用数据包传输给传输层,传输层为应用层提供网络支持,TCP、UDP。

TCP:流量控制,拥塞控制,超时重传,三次握手,四次挥手。。。

UDP:只负责发送数据包,不保证可靠性。

MSS:TCP 最大报文段长度,在TCP中把每个分快称为TCP段

传输层需要负责将数据包传输给应用层的对应应用,传输层根据报文中的端口号判断发送给哪个应用。

端到端传输

网络层

点到点传输,提供实际的传输功能。

IP:IP地址,网络地址+主机号,子网掩码,路由,

IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘

网络接口层

MAC:IP报文被封装为数据帧,通过局域网进行传输,通过MAC地址进行寻找,ARP协议负责获取接收方的MAC地址。

总结

TCP-IP报文格式.webp

2.2 浏览器从输入网址到网页显示流程

HTTP/HTTPS 协议

第一步:URL解析 URL:协议+服务器域名+资源路径名

第二步:生成HTTP/HTTPS请求报文。

第三步:TCP --> IP --> MAC --> 网卡 --> 交换机 --> 路由器 --> 服务器

第四步:服务器解析请求并生成应答报文返回客户端

第五步:浏览器接收应答报文解析,网页显示

域名–>(DNS)–>IP地址

域名层级关系,根域名–>顶级域名–>权威域名

www.server.com

根 DNS 服务器(.)

顶级域 DNS 服务器(.com)

权威 DNS 服务器(server.com)

域名解析:

DNS解析流程.png

协议栈

通过DNS获取IP地址后,将HTTP的传输工作交给协议栈,由协议栈中的TCP,IP,网络接口层进行传输。

TCP

报文格式

TCP报文格式.png

源端口+目的端口 确定发送应用和接收应用

包序号,解决报文乱序问题

确认号,确认报文是否发送成功,对方是否接收到

状态位,SYN:发起连接,ACK:确认回复,RST:重连接,FIN:结束连接

窗口大小,TCP流量控制窗口,告诉对方自己的报文处理能力

拥塞控制

TCP三次握手建立连接

client–>server: SYN (SYN = 1, Seq Num = client_isn)

server–>client: SYN + ACK (SYN = 1, ACK = 1, Seq_Num = server_isn; Ack_Num = client_isn + 1)

client–>server: ACK / ACK + Data (ACK = 1, Ack_Num = server_isn + 1)

TCP三次握手.jpg

TCP四次挥手断开连接

client–>server: FIN (Seq_Num = u,FIN = 1)

server–>client: ACK (ACK = 1, Seq_Num = v, Ack_Num = u + 1)

server–>client: FIN (FIN = 1, ACK = 1, Seq_Num = w, Ack_Num = u + 1)

client–>server: ACK (ACK = 1, Seq_Num = u + 1, Ack_Num = w + 1)

client 进入TIME-WAIT状态等待 2MSL 后进入closed状态。

TCP四次挥手.png

IP路由寻址

IP报文格式

IP报文格式.png

MAC局域网传输

以太帧格式

以太帧格式.png

目标IP地址通过ARP协议获取,ARP 协议会在以太网中以广播的形式,对以太网所有的设备喊出:“这个 IP 地址是谁的?请把你的 MAC 地址告诉我”。

然后就会有人回答:“这个 IP 地址是我的,我的 MAC 地址是 XXXX”。

如果对方和自己处于同一个子网中,那么通过上面的操作就可以得到对方的 MAC 地址。然后,我们将这个 MAC 地址写入 MAC 头部,MAC 头部就完成了。

网卡–>交换机–>路由器–>服务器

最终封装好的数据包经由网卡,交换机,路由器传输到对端服务器,对端服务器解析后生成HTTP/HTTPS响应报文,通过相似的方式返回客户端,客户端浏览器解析后对网页进行显示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值