计算机网络笔记1

写在前面
下面的内容全部源于小林coding在结合自己的思考,挑了难点整理一下
  1. 端口
? 当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口。
  1. mtu&mss
    计算机网络笔记1
    文章图片

  2. 寻址和路由
    IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘**。
  3. tcp/ip网络有哪几层
    • 应用层
      端口、有哪些协议
    • 传输层
      tcp/udp的区别
    • 网络层
      ip,arp,路由的概念,icmp(网络差错报文检测),ping、traceroute....
    • 数据链路层
      mac
  4. 键入网址到网页显示,期间发生了什么?
    1. http=>url域名解析,通过dns
    2. tcp=>建立tcp连接,三次握手,
      https的话还要经历ssl层进行四次握手,先三次握手成功后再https握手
      长连接问题的话,可以在过期时间前一直保持通信不断开,中间还有session,cookies机制
      socket通过四元组发送接受数据
      1. ip=>根据ip寻求mac,arp,icmp(网络控制差错报文)
      2. mac
      3. 打包好的数据包从网卡出
      4. 经过交换机
      5. 经过路由器
      6. 到达目的ip
      7. 服务器拆包得到消息,根据消息响应内容再将数据包封装返还给客户端。
  5. Linux是怎么收发网络包的
    【计算机网络笔记1】重点理解:
    • 根据四元组「源 IP、源端口、目的 IP、目的端口」 作为标识,找出对应的 Socket,并把数据拷贝到 Socket 的接收缓冲区
    • socket是在内核态,应用程序调用socket接口,要从用户态边到内核态
    • 在网卡的时候注意是中断以及采用的NAPI 机制,它是混合「中断和轮询」的方式来接收网络包,它的核心概念就是不采用中断的方式读取数据,而是首先采用中断唤醒数据接收的服务程序,然后 poll 的方法来轮询数据。
    • 当有网络包到达时,网卡发起硬件中断,于是会执行网卡硬件中断处理函数,中断处理函数处理完需要「暂时屏蔽中断」,然后唤醒「软中断」来轮询处理数据,直到没有新数据时才恢复中断,这样一次中断处理多个网络包,于是就可以降低网卡中断带来的性能开销。
      计算机网络笔记1
      文章图片

    推荐阅读