tcp/ip详解卷一(笔记1:概述与IP层协议)

本文详细介绍了TCP/IP协议的IP层,包括IP首部、路由选择和ARP协议。讨论了IP数据报的不可靠传输、TTL字段的作用,以及IP路由表的查找原则。同时,解释了ARP的工作原理、代理ARP和免费ARP的用途,以及ICMP报文类型和在错误报告中的应用。此外,还简述了ping和traceroute程序在网络诊断中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.概述

1.1 分层

网络协议通常通过不同的层次进行开发,每一层分别负责不同的通信功能。一个协议簇,如TCP/IP通常是一组不同层次上的协议的组合。TCP/IP通常被认为是一个四层的协议系统,如下图所示。

在这里插入图片描述

每一层负责不同的功能:
(1)链路层:有时也被称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。他们一起处理与电缆的物理接口细节。

(2)网络层:也被称为互联层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议中,网络层协议包括IP,ICMP(网络控制报文协议),IGMP(网络组管理协议)

(3)传输层:主要为主机上的应用程序提供端到端的通信。包括TCP,UDP.

(4)应用层:负责处理特定应用程序细节。不同的TCP/IP协议都会实现如下几种应用协议:Telnet,FTP,SMTP,SNMP协议。

互联网上运行FTP通信的两个主机通信过程涉及的协议:
在这里插入图片描述

通过路由器连接的两个网络中主机的通信:

在这里插入图片描述

1.2 网络中主机的地址与域名系统

1.2.1 ip地址分类

在这里插入图片描述

在这里插入图片描述

1.2.2 域名系统

域名系统DNS是一个分布的数据库,提供IP地址和主机名之间的映射。具体的信息在后面描述。

1.3 封装

当应用程序用TCP传输数据时,数据被送入协议栈中,然后逐个通过每层直到当被做一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还需要增加尾部信息)。该过程如下图所示。
在这里插入图片描述
其中TCP传给IP的数据单元被成为tcp报文段或TCP段。IP传给网络接口层的数据包成为IP数据报。通过以太网传输的比特流成为帧。

1.4 分用

当目的主机收到一个以太网数据帧时,数据就要开始从协议栈中从底向上上升,同时去掉各个协议加上的报文首部。每层协议都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程成为分用。

在这里插入图片描述

1.5 端口

tcp,udp采用16bit的端口号来识别应用程序。在/etc/services文件中声明了常用服务的端口号。

dan@ubuntu:~$ vi /etc/services
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other

tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
daytime         13/tcp
daytime         13/udp
netstat         15/tcp
qotd            17/tcp          quote

ftp             21/tcp
fsp             21/udp          fspd
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timserver
time            37/udp          timserver
rlp             39/udp          resource        # resource location
nameserver      42/tcp          name            # IEN 116
whois           43/tcp          nicname
tacacs          49/tcp                          # Login Host Protocol (TACACS)
tacacs          49/udp
re-mail-ck      50/tcp                          # Remote Mail Checking Protocol
re-mail-ck      50/udp
domain          53/tcp                          # Domain Name Server
domain          53/udp
mtp             57/tcp                          # deprecated
tacacs-ds       65/tcp                          # TACACS-Database Service
......

1.6 tcp/ip实现 、应用编程接口

既成事实标准的tcp/ip协议软件实现来自伯克利的加利福利亚大学的计算机系统研究小组。

使用TCP/IP协议的应用程序通常采用两种应用编程接口API: Socket(有时称为Berkeley socket,表明是从伯克利版发展而来的) 和 TLI(运输层接口:transport layer interface)。

2. 链路层

链路层主要有三个目的:1)为IP模块发送和接收IP数据包;2)为ARP 协议发送请求和接收应答;3)为RARP 协议发送请求和接收应答

TCP/IP协议支持多种不同的数据链路层协议,包括:以太网(csma/cd:带冲突检测的载波真听多路接入)、令牌环网、FDDI(光纤分布式数据接口)

2.1 以太网和IEEE 802封装

以太网封装格式:
在这里插入图片描述

3. IP

IP提供的是不可靠、无连接的数据报传输服务。其不可靠的意思是它不能保证IP数据报能成功到达目的地。如果发生某种错误,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信源端(谁发送ICMP发?)

3.1 IP首部

编辑推荐 本书是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1,主要讲述TCP/IP协议方面的内容。其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。 内容简介  《TCP/IP详解1协议》是本完整而详细的TCP/IP协议指南。描述了属于每的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 作者简介 W.Richard Stevens(1951-1999)是位非常受人尊敬的专家,除了《TCP/IP详解》三本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两本)。 目录 译者序 前言 第1概述 1 1.1 引言 1 1.2 分 1 1.3 TCP/IP的分 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求应答 52 6.4 ICMP间戳请求应答 53 6.4.1 举例 54 6.4.2 另种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute程序示例 78 8.5.2 严格的源站选路的traceroute程序示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值