Learning Records 计算机网络

背景:没想到本专业并不开设这门课程,感觉过于逆天,之前开发的时候了解过相关知识但是从来没有系统地学过,就自己看了书,总结一下参考:《TCP/IP详解 卷1:协议》
概述大多数网络应用程序被设计成客户——服务器的模式
Learning Records 计算机网络

文章插图
域名系统(DNS)是一个分布数据库,它可以提供IP地址和主机名的映射当应用程序通过TCP传入数据时,数据通过协议栈封装(TCP首部,IP首部,以太网首部和尾部)分用:
Learning Records 计算机网络

文章插图
TCP服务器是并发型的,UDP服务器是重复型(非并发)
ARP又被称为地址解析协议,它为IP地址到对应的硬件地址之间提供动态映射首先它会发送一份“广播”(以太数据帧)给以太网上的每个主机数据帧中包含目标主机的地址,如果是目标主机,则会回答硬件地址那么使用ARP进行请求-回答交换的IP数据现在就可以传送了
注明:点对点链路不使用ARP
ARP高速缓存能有效提高ARP的效率RARP功能与ARP相反,请求以广播的形式发送,应答以单播的形式发送
ICMPICMP经常被认为是IP层的一个组成部分,它传输报错的信息和其他需要注意的信息ICMP报文通常被IP层或更高协议层调用ICMP时间戳可以用于计算应答的时间
IP提供不可靠,无连接的数据报传送服务不可靠指的是他不能保证IP数据成功到达目的地,只提供最好的传输服务无连接指的是他不处理后续数据报的状态信息,每个数据报的处理是相互独立的同时也是不按顺序处理数据报的
IP路由选择IP从TCP或ICMP或网络接口等接受到数据报之后,其在内存中有一个内存表当来自网络接口时,会首先检查是否是本机的IP地址之一或广播地址路由表中包含
  1. 目的IP地址
  2. 下一站路由器的IP地址,或者直接相连的网络IP地址
  3. 标志 指明IP地址是网络地址还是主机地址
  4. 为数据报的传输指定一个网络接口所有的IP路由选择只为数据报传输指明下一个路由的IP地址
ping主要是为了测试一台主机是否可达,具有时间戳
Traceroute可以看到IP数据报从一个主机传到另一个主机所经过的路由用Traceroute的理由(为什么不用(RR)IP记录路由)
  1. IP留给首部的空间有限,不能存放大多数的路径
  2. 并不是所有的路由器都支持记录路由选项
  3. 记录路由一般是单向的选项
【Learning Records 计算机网络】主要利用的是ICMP和IP首部中的TTL字段TTL作为一个跳站的计数器,所经过的每个路由都将其值-1TTL也可以防止数据无休止地流动,当TTL为0或1时,会丢弃该数据,并给信源发送一份ICMP超时信息Traceroute的关键在于包含这份ICMP报文的信息里也有该路由的信息所以其工作原理是:先发送一份TTL为1的报文从而得到第一个路由的地址,然后发送TTL为2的报文,这样持续到主机
IP选路IP层工作流程如图所示:IP层进行选路只是决定把哪些路由放进路由表的规则 。IP执行选路机制,而路由守护程序一般提供选路策略IP搜索路由表时先搜索匹配项,再搜索默认项如果要到达不直接相连的主机或网络必须用某种方式添加到路由表中
比如:
  1. 在系统引导时显式的在初始化文件中运行route命令
  2. 运行路由守护程序如果既没找到匹配项,又没找到默认项结果取决于该IP数据报是由主机产生还是转发的