写在后面
上面的内容全副源于小林 coding 在联合本人的思考,挑了难点整顿一下
- 端口
当设施作为接管方时,传输层则要负责把数据包传给利用,然而一台设施上可能会有很多利用在接管或者传输数据,因而须要用一个编号将利用辨别开来,这个编号就是 端口。
-
mtu&mss
-
寻址和路由
IP 协定的 寻址作用 是通知咱们去往下一个目的地该朝哪个方向走,路由 则是依据「下一个目的地」抉择门路。寻址更像在导航,路由更像在操作方向盘 **。
-
tcp/ip 网络有哪几层
-
应用层
端口、有哪些协定
-
传输层
tcp/udp 的区别
-
网络层
ip,arp, 路由的概念,icmp(网络过错报文检测),ping、traceroute….
-
数据链路层
mac
-
-
键入网址到网页显示,期间产生了什么?
- http=>url 域名解析, 通过 dns
-
tcp=> 建设 tcp 连贯,三次握手,
https 的话还要经验 ssl 层进行四次握手,先三次握手胜利后再 https 握手
长连贯问题的话,能够在过期工夫前始终放弃通信一直开,两头还有 session,cookies 机制
socket 通过四元组发送承受数据
- ip=> 依据 ip 寻求 mac,arp,icmp(网络管制过错报文)
- mac
- 打包好的数据包从网卡出
- 通过交换机
- 通过路由器
- 达到目标 ip
- 服务器拆包失去音讯,依据音讯响应内容再将数据包封装返还给客户端。
-
Linux 是怎么收发网络包的
重点了解:
- 依据四元组「源 IP、源端口、目标 IP、目标端口」作为标识,找出对应的 Socket,并把数据拷贝到 Socket 的接收缓冲区
- socket 是在内核态,应用程序调用 socket 接口,要从用户态边到内核态
- 在网卡的时候留神是中断以及采纳的 NAPI 机制,它是混合「中断和轮询」的形式来接管网络包,它的外围概念就是 不采纳中断的形式读取数据,而是首先采纳中断唤醒数据接管的服务程序,而后
poll
的办法来轮询数据。 - 当有网络包达到时,网卡发动硬件中断,于是会执行网卡硬件中断处理函数,中断处理函数解决完须要「临时屏蔽中断」,而后唤醒「软中断」来轮询解决数据,直到没有新数据时才复原中断,这样一次中断解决多个网络包,于是就能够升高网卡中断带来的性能开销。