高性能服务器学习笔记(一) TCP/IP

        

 1.数据链路层

        数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。

        数据链路层两个常用的协议分别是ARP协议(Address Resolve Protocol,地址解析协议)和RARP(Reverse Address Resolve Protocol,逆地址解析协议)。它们实现了IP地址和主机物理地址(通常指MAC地址)间的互相转换。

2.网络层

        网络层实现数据包的路由和转发。主要有IP协议(Internet Protocol)和ICMP协议(Internet Control Message Protocol).ICMP主要用于检测网络连接,ICMP报文分为两大类:一类是差错控制报文;另一类是查询报文;

3.传输层

        传输层为两台主机上的应用程序提供端到端(end to end)的服务。传输层只关心通信的起点和终点,而不在乎中转的过程。传输层协议主要有三个:TCP协议、UDP协议和SCTP协议。SCTP协议是为了在因特网上传输电话信号而设计的,我只知道有这么个东西。

          TCP协议(Transmission Control Protocol,传输控制协议)为应用层提供可靠的、面向连接的和基于流(stream)的服务。TCP协议使用超时重传、数据确认等方式来确保数据包被正确地发送到目的端。

        UDP协议(User Datagram Protocol,用户数据报协议)提供不可靠、无连接和基于数据报的服务。当传输出错,UDP协议只是简单通知应用程序发送失败。

4.应用层

        应用层负责处理应用程序的逻辑。应用层协议很多,例如DNS(Domain Name Service,域名服务)协议提供主机域名到IP地址的转换。应用层协议(或程序)可能跳过传输层直接使用网络层提供的服务,例如OSPF(Open Shortest Path First,开放最短优先)协议,它是一种动态路由更新协议,用于路由器之间的通行,以告知对方各自的路由信息。

5.封装

        上层协议通过封装来使用下层协议提供的服务。

 

         当发送端应用程序使用send(或者write)函数向一个TCP连接写入数据时,内核中的TCP模块首先把这些数据复制到与该连接对应的TCP内核发送缓存区中,然后TCP模块调用IP模块提供的服务,传输的参数包括TCP头部信息和TCP发送缓冲区的数据,即TCP报文段。

        经过UDP封装后的数据称为UDP数据报(UDP datagram).UDP无需为应用层数据保存副本,因为它提供的服务是不可靠的。当一个UDP数据报被成功发送后,UDP内核缓冲区中的该数据报就被丢弃了。如果需要重新发送这个数据报,则应用程序需要重新从用户空间将该数据报拷贝到UDP内核发送缓冲区。

        经过IP封装后的数据称为IP数据报(IP datagram).

        经过数据链路层封装的数据称为帧(frame)。例如以太网上传输的是以太帧(ethernet frame)。以太网帧封装如下,则除了数据部分,其它部分固定18字节。

 6.分用

        当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序。这个过程称为分用(demultiplexing)。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值