TCP/IP 详解卷一 - 第1章 概述

1.2 分层

        网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如 T C P / I P,是一组不同层次上的多个协议的组合。 T C P / I P通常被认为是一个四层协议系统,如图所示。


1)        应用层:负责处理特定的应用程序细节。包括:Telnet(远程登录)、FTP (文件传输协议)、SMTP (简单邮件传输协议)、SNTP (简单网络管理协议);

2)        传输层(运输层):主要功能为两台主机上的应用程序提供端到端的通信,通过端口号识别两台主机上相对应程序之间进行通信。主要包括:TCP (传输控制协议)、UDP (用户数据报协议);

Ø  TCP 协议:是一种面向连接的传输层协议,确保两台主机提供高可靠性的数据通信。它的任务是把来自应用程序的数据分成合适的小块交给下面的网络层,确认接收到数据的分组。为数据块设置超时时钟,一旦超过该时间就重新发送数据;

Ø  UDP 协议:是一种面向无连接的传输层协议,为应用程序发送和接收数据报,只是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何必须的可靠性都由应用层提供。UDP 协议常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域;

3)        网络层:处理分组在网络中的活动,例如分组的选路。主要包括:IP 协议(网际协议)、ICMP 协议(Internet 互联网控制报文协议)、IGMP 协议(Internet 组管理协议);

Ø  IP 协议:负责基于 IP 地址转发数据包,不具有重发机制,是一种不可靠、无连接的传输协议,整个互联网能够通过把 IP 地址的作为主机标识,跨越网络传送和接收数据包;

Ø  ICMP 协议:是 IP 协议的附属协议,IP 层用它来与其他主机或路由器交换错误报文或其他重要信息。IP 数据包在发送过程中发生异常导致无法到达目的端,则使用 ICMP 协议给发送端发送一个异常消息通知,该协议也可用来检查网络的健康状态;

Ø  IGMP 协议:它用来把一个 UDP 数据报多播到多个主机;

4)        链路层:处理与传输媒介相关的物理接口细节。主要包括:操作系统的设备驱动程序、计算机中对应的网络接口卡;

1.4互联网的地址

按 IP 地址格式分类

        互联网上的每个接口必须有一个唯一的 IP 地址, IP 地址长度 32 bit,,即 4 个字节,每个 IP 地址都由 标识位、网络号 和 主机号三部分组成。32 位二进制数地址通常写成四个十进制数, 每个十进制整数对应一个字节,这就是“点分十进制表示法”。 第一个十进制整数即可区分 IP 地址类型:0 ~ 127 A类,128 ~ 191 B类,192 ~ 223 C类, 224 ~ 239 D类, 240 ~ 225 E类;下面是五类不同的 IP 地址的结构。 


A类地址:

  • 十进制取值范围 :0.0.0.0 ~ 127.255.255.255;
  • 二进制取值范围 :0(标识位) 0000000(网络号) 00000000 00000000 00000000(主机号) ~ 0(标识位) 1111111(网络号) 11111111 11111111 11111111(主机号);

B类地址:

  • 十进制取值范围 : 128.0.0.0 ~ 191.255.255.255;
  • 二进制取值范围 :10(标识位) 000000 00000000(网络号) 00000000 00000000(主机号) ~ 10(标识位) 111111(网络号) 11111111 11111111 11111111(主机号);

C类地址: 

  • 十进制取值范围 : 192.0.0.0 ~ 223.255.255.255;
  • 二进制取值范围 :110(标识位) 00000 00000000 00000000(网络号) 00000000(主机号) ~ 110(标识位) 11111 11111111 11111111(网络号) 11111111(主机号);

D类地址 : 

  • 十进制取值范围 : 224.0.0.0 ~ 239.255.255.255;
  •  二进制取值范围 : 1110(标识位) 0000 00000000 00000000 00000000 00000000(多播组号) ~ 1110(标识位) 1111 11111111 11111111 11111111(多播组号);

E类地址:

  • 十进制取值范围 :240.0.0.0 ~ 255.255.255.255;
  • 二进制取值范围 :11110(标识位) 000 00000000 00000000 00000000(保留位) ~ 11110(标识位) 111 11111111 11111111 11111111(保留位);

按照目的地址分类

IP 地址按目的地址分类: 

  • 单播地址:目的端为单个主机;
  • 广播地址:目的端是给定网络的所有主机;
  • 多播地址:目的端是同一组的所有主机;

1.5 域名系统

        尽管可以通过 IP 地址识别主机上的网络接口,进而访问主机,但是我们习惯于使用便于记忆的主机名。域名系统(DNS)可以提供 IP 地址和主机名之间的映射信息,它是一个分布的数据库。所以在应用程序中可以调用系统函数实现 IP 地址和主机名之间的转换。

1.6 封装

        当应用程序使用 TCP 传输数据时,数据被送入到协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层都要增加一些首部信息,因为方便根据这些首部信息确认数据属于哪一层或哪个协议,下面是应用程序使用 TCP 传输数据的过程:


T C P传给 IP的数据单元称作T C P报文段或简称为T C P段( TC P s e g m e n t)。 I P传给网络接口层的数据单元称作 I P数据报(IP datagram)。通过以太网传输的比特流称作帧 (Fr a m e )。

1.7 分用

         分用: 目的主机在链路层接收到以太网数据帧时, 该数据就开始从协议栈中由底向上逐层上升,在每层都去掉该层的首部信息,并校验首部信息是否正确,该过程就是分用;

        发送数据:从应用层到链路层逐层加数据包是封装;接收数据:从链路层到应用层逐层解包是分用;


1.9 端口号

        端口号是在运输层配合TCP 或 UDP 协议使用的,使 TCP 或 UDP 能识别主机应用程序,脱离这两个协议端口号将毫无用处;

       服务器一般都是通过知名端口号来识别的。例如,对于每个 T C P / I P实现来说, F T P服务器的T C P端口号都是2 1 ,每个Te l n e t服务器的T C P端口号都是 2 3 ,每个 T F T P (简单文件传送协议)服务器的 U D P端口号都是6 9。任何 TC P / I P实现所提供的服务都用知名的 1 ~ 1 02 3之间的端口号。

       到1 99 2年为止,知名端口号介于 1~2 55之间。 25 6~1 02 3之间的端口号通常都是由U n i x系统占用,以提供一些特定的 U n i x服务—也就是说,提供一些只有 U n i x系统才有的、而其他操作系统可能不提供的服务。

       客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。大多数 T C P / I P实现给临时端口分配 1 0 2 4~ 5 0 0 0之间的端口号。

数据相关概念

包:TCP / IP 协议中,每一层的数据都可以成为包;

帧 (以太网数据帧):链路层包的单位;

数据包 (IP数据报):网络层以上包的单位,IP 给链路层的数据包称为 IP 数据报 (IP datagram);

段 (TCP 报文段) : TCP 数据包,TCP 传递给 IP 的数据包成为 TCP 报文段 (TCP segment);

消息: 应用层的数据包;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 本书是网络构建原型——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、付费专栏及课程。

余额充值