Linux高性能服务器编程-游双——第一章 TCP/IP协议族

1.1 体系结构

  • 数据链路层->网络层->传输层->应用层
  • 在这里插入图片描述

1.1.1 数据链路层

  • 实现网卡接口的网络驱动程序。
  • 处理数据在物理媒介上的传输。
  • 为上层隐藏了物理网络的不同电气特性。

1.1.2 网络层

  • 实现数据包的选路和转发,因为网络是网状的,从A到B不止有一条路,关键是如何选择路。

1.1.3 传输层

  • 为应用程序提供端到端的通信,只用关心通信传输的起始端和目的端。

1.1.4 应用层

  • 负责处理应用程序的逻辑
  • 在用户空间实现

1.2 封装

  • 上层协议使用下层协议提供的服务,就需要用到封装
  • 应用层到物理网络,每一层加上自己的头部信息,或进行信息的拆分(数据链路层每次传输数据大小有限),以实现该层的功能。
  • 在这里插入图片描述
  • 发送:从上到下依次添加头部,头部的添加使得下层为上层屏蔽了传输细节,上层协议在使用时不用考虑下层使用的是什么协议。
  • 接收:从下到上依次剥离头部,获取原本信息。

1.3 分用(这里的“分”应该理解为“分解”)

  • 报文到达目的主机时,各层协议从下到上依次处理帧中本层的信息,并最后提交到目标应用层序。

1.4 测试网络

1.5 ARP协议工作原理

  • Address Resolution Protocol 地址解析协议
  • 任意网络层地址到任意物理地址的转换,例如IP地址到MAC地址。

1.5.1 报文格式:

在这里插入图片描述

1.5.2 ARP高速缓存查看和修改

  • 用来避免重复的ARP请求,提高发包速度。
  • arp 命令可以用来查看和修改linux下的arp高速缓存
  • 查看 arp -a
  • 删除 arp -d xxx.xxx.xxx.xxx
  • 添加 arp -s xxx.xxx.xxx.xxx

1.5.3 使用tcpdump观察ARP通信过程

  • tcpdump的抓包原理:tcpdump抓取的是以太网帧

1.6 DNS工作原理

  • 实现机器域名和IP地址之间的映射
  • 域名好记IP不好记

1.6.1 DNS查询和应答报文详解

  • 报文
    在这里插入图片描述
  • 注意标识和标志是不一样的
  • 16位标志字段 在这里插入图片描述

1.6.2 linux访问DNS服务器

  • DNS服务器IP地址:/etc/resolv.conf文件存放DNS服务器IP地址
  • host -t A www.baidu.com向DNS服务器询问IP地址
  • host命令使用DNS协议和DNS服务器通信

1.6.3 使用tcpdump观察DNS通信过程

1.7 socket和TCP/IP协议族关系

  • 数据链路层、网络层、传输层协议是在内核中实现的,操作系统有一组调用,来使得应用程序可以访问这些协议提供的服务,实现这组调用的API目前用的基本都是socket。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值