TCPIP详解学习笔记
TCPIP的知识梳理(按四层结构体系描述)
TCPIP的知识梳理(按四层结构体系描述)TCP/IP协议TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/⽹际协议)是指能够在多个不同⽹络间实现信息传输的协议簇。
TCP/IP协议不仅仅指的是TCP 和IP两个协议,⽽是指⼀个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议是严格来说是⼀个四层的体系结构,应⽤层、传输层、⽹络层和数据链路层都包含其中。
OSI参考模型与TCP/IP四层模型对⽐ ⼀、应⽤层协议该层存在的协议:HTTP,DNS,FTP,Telnet,SMTP,RIP,NFSHTTP协议:(后⾯专门⽤⼀篇⽂章详解HTTP和HTTPS)HTTP (HyperText Transfer Protocol 超⽂本传输协议) 基于 TCP,使⽤端⼝号 80 或 8080。
每当你在浏览器⾥输⼊⼀个⽹址或点击⼀个链接时,浏览器就通过 HTTP 协议将⽹页信息从服务器提取再显⽰出来,这是现在使⽤频率最⼤的应⽤层协议。
这个原理很简单:点击⼀个链接后,浏览器向服务器发起 TCP 连接;连接建⽴后浏览器发送 HTTP 请求报⽂,然后服务器回复响应报⽂;浏览器将收到的响应报⽂内容显⽰在⽹页上;报⽂收发结束,关闭 TCP 连接。
HTTP 报⽂会被传输层封装为 TCP 报⽂段,然后再被 IP 层封装为 IP 数据报。
HTTP 报⽂的结构:可见报⽂分为 3 部分:(1)开始⾏:⽤于区分是请求报⽂还是响应报⽂,请求报⽂中开始⾏叫做请求⾏,⽽响应报⽂中,开始⾏叫做状态⾏。
在开始⾏的三个字段之间都⽤空格分开,结尾处 CRLF 表⽰回车和换⾏。
(2)⾸部⾏:⽤于说明浏览器、服务器或报⽂主体的⼀些信息。
(3)实体主体:请求报⽂中通常不⽤实体主体。
理解tcpip[指南]
一.了解TCP/IPInternet是由上亿台计算机互联组成的,要能正确地访问每台机器、使数据在Internet中正确传播需要一个协议进行控制。
Internet使用的这一协议就是TCP/IP。
什么是TCP/IP 这是一组通信协议的代名词。
它本身指两个协议:TCP网络传输控制协议,IP网际协议。
IP(网间协议):Internet将消息从一个主机传递到另一个主机使用的协议称为网间协议(IP),这是Internet网络协议。
网间协议负责将消息发送到指定接收主机。
可以使用广域网或局域网,高速网或低速网,无线网或有线网等几乎所有类型的网络通信技术。
TCP(传输控制协议):消息在传送时被分割成一个个的小包,传输控制协议(TCP)负责收集这些信息包,并将其按适当的次序放好来发送,在接收端收到后再将其正确地还原。
传输控制协议处理了IP协议中没有处理的通信问题,向应用程序提供可靠的通信连接,能够自动适应网络的变化。
它保证数据包在传送中正确无误。
在Internet中,网间协议和传送协议配合工作,即我们常说的TCP/IP协议。
TCP/IP协议采用层次体系结构,从上而下分为应用层,传输层,网际层和数据链路层,每一层都实现特定的网络功能。
如图1(图1见TCP/IP分层模型.doc)所示。
数据链路层数据链路层提供了TCP/IP与各种物理网络的接口。
物理网络指的是各种局域网和广域网,如Ethernet和X.25公共分组交换网等。
其还为网络层提供服务。
网际层网际层解决了计算机与计算机之间的通信问题,这一层的通信协议统一为IP协议。
IP协议具有以下几个功能:管理Internet地址:Internet上的计算机都要有唯一的地址,即IP地址。
路由选择功能:数据在传输过程中要由IP通过路由选择算法,在发送方和接送方之间选择一条最佳的路径。
数据的分片和重组:数据在传送过程中要经过多个网络,每个网络所规定的分组长度不一定相同。
因此,当数据经过分组长度较小的网络时,就要分割成更小的段。
TCPIP协议详解-第十三章IGMP:Internet组管理协议
第13章IGMP :Internet 组管理协议13.1 引言1 2.4节概述了I P 多播给出,并介绍了D 类I P 地址到以太网地址的映射方式。
也简要说明了在单个物理网络中的多播过程,但当涉及多个网络并且多播数据必须通过路由器转发时,情况会复杂得多。
本章将介绍用于支持主机和路由器进行多播的I n t e r n e t 组管理协议(I G M P )。
它让一个物理网络上的所有系统知道主机当前所在的多播组。
多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。
I G M P在RFC 111 2中定义[Deering 1989]。
正如I C M P 一样,I G M P 也被当作I P 层的一部分。
I G M P 报文通过I P 数据报进行传输。
不像我们已经见到的其他协议,I G M P 有固定的报文长度,没有可选数据。
图1 3-1显示了I G M P 报文如何封装在I P 数据报中。
I G M P 报文通过I P 首部中协议字段值为2来指明。
13.2 IGMP 报文图1 3-2显示了长度为8字节的I G M P 报文格式。
图13-2 IGMP 报文的字段格式这是版本为1的I G M P 。
I G M P 类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。
检验和的计算和I C M P 协议相同。
组地址为D 类I P 地址。
在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。
在下一节中,当介绍I G M P 如何操作时,我们将会更详细地了解它们。
13.3 IGMP 协议13.3.1 加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。
在一个给定接口上的多播组中的成员是动态图13-1 IGMP 报文封装在IP 数据报中IP 数据报IP 首部IGMP 报文20字节8字节4位IGMP版本(1)4位IGMP 类型(1-2)未用检验和32位组地址(D 类IP 地址)8字节的—它随时因进程加入和离开多播组而变化。
TCPIP协议详解及应用
TCPIP协议详解及应用随着网络技术的发展,TCP/IP协议成为了互联网的核心协议之一。
本文将对TCP/IP协议进行详细解析,并探讨其在实际应用中的重要性和应用场景。
一、TCP/IP协议概述及工作原理TCP/IP协议是互联网通信的基础协议,它由两个部分组成:传输控制协议(TCP)和互联网协议(IP)。
TCP负责数据的可靠传输,而IP则负责数据包的路由和寻址。
TCP/IP协议的工作原理如下:发送端将数据分割成小的数据包,每个数据包都会被添加上源地址和目标地址等必要的信息。
然后,这些数据包通过IP协议进行传输,根据目标地址信息找到合适的路径进行传送。
接收端根据源地址和目标地址信息,将接收到的数据包重新组装,最终将完整的数据传递给应用程序。
二、TCP/IP协议的主要特点1. 可靠性:TCP通过使用序列号、确认应答、重传机制等方式,确保数据的可靠传输。
2. 高效性:TCP通过流量控制和拥塞控制等算法,避免网络拥塞,提高网络的传输效率。
3. 全球性:TCP/IP协议是全球通用的协议,不受地域限制,可以在任何地方进行通信。
4. 灵活性:TCP/IP协议支持多种网络设备和技术,适用于各种场景,包括局域网、广域网、无线网络等。
5. 扩展性:TCP/IP协议是分层设计的,每一层都可以进行扩展和改进,以满足不同需求。
三、TCP/IP协议的应用场景1. 互联网通信:TCP/IP协议是互联网通信的基础,包括网页浏览、电子邮件、文件传输等,都是基于TCP/IP协议进行传输和交互的。
2. 远程登录:通过TCP/IP协议,用户可以通过网络远程登录到其他计算机,进行远程管理和操作。
3. 文件共享:TCP/IP协议支持文件共享,用户可以通过TCP/IP协议共享和访问其他计算机上的文件和资源。
4. 实时通信:TCP/IP协议也可以用于实时通信应用,如语音、视频会议等,保证通信的实时性和稳定性。
5. 无线网络:TCP/IP协议在无线网络中也起着重要作用,如无线局域网(WLAN)和移动通信网络,都是基于TCP/IP协议进行通信的。
学习网络编程了解TCPIP协议和网络通信原理
学习网络编程了解TCPIP协议和网络通信原理学习网络编程了解 TCP/IP 协议和网络通信原理网络编程成为了当今信息时代中必备的技能之一。
学习网络编程意味着我们要了解 TCP/IP 协议和网络通信原理,因为它们是构建互联网世界的基石。
本文将深入探讨 TCP/IP 协议和网络通信原理,帮助读者全面了解这个领域。
一、TCP/IP 协议简介TCP/IP(Transmission Control Protocol/Internet Protocol)是一组用于实现互联网通信的协议集合。
它由两个基本协议构成:TCP 和 IP。
1. TCP(Transmission Control Protocol):TCP 是一种面向连接的可靠传输协议。
它通过将数据分割成小的数据包,并进行顺序管理和确认机制,在网络间确保可靠的数据传输。
TCP 还负责错误检测和差错纠正,确保数据完整性。
2. IP(Internet Protocol):IP 是一种无连接的不可靠传输协议。
它负责将数据包从源地址传递到目标地址,通过 IP 地址标识不同的网络设备和计算机。
IP 提供了最基础的寻址和路由功能,确保数据能够在网络中正确传递。
二、网络通信原理网络通信的基本原理是数据的传输和交换。
在理解网络通信原理之前,我们需要了解一些基本概念:1. 客户端(Client):客户端是发起请求的一方,它向服务器发送请求并接收响应。
客户端可以是个人计算机、智能手机等终端设备。
2. 服务器(Server):服务器是响应请求的一方,它接收客户端的请求并提供相应的服务或数据。
服务器通常是高性能、高可靠性的计算机。
3. 网络协议(Network Protocol):网络协议是计算机在网络中通信和交流的规则和约定。
TCP/IP 协议就是其中之一,它规定了数据的传输格式、传输方式和通信规则。
基于以上概念,网络通信的过程可以简化为以下几个步骤:1. 建立连接:客户端向服务器发送连接请求,服务器接收并确认连接请求,建立连接。
TCPIP详解---滑动窗口机制及其三种协议
TCPIP详解---滑动窗⼝机制及其三种协议在介绍滑动窗⼝之前先来简单介绍⼀下TCP可靠传输原理中的停⽌等待协议,该协议就是发送⽅每发送⼀个报⽂段后就停⽌发送,⼀直等收到接收⽅的确认后再发送下⼀个报⽂段。
TCP通信是全双⼯的,这⾥为了⽅便理解,就以⼀个⽅向为例,假设A为发送⽅,B为接收⽅。
A会有⼀个发送窗⼝,B有⼀个接收窗⼝。
发送窗⼝表⽰在没有收到B确认的情况下,A也可以连续把发送窗⼝的数据发送出去。
但是已经发送过的数据在未收到确认之前,它还需要暂时保留,以便于超时重传时使⽤。
发送窗⼝越⼤,它就可以在收到对⽅确认之前发送更多的数据,因⽽获得更⾼的传输效率。
(但是A的发送窗⼝的值不能超过B的接收窗⼝的⼤⼩,还会受到⽹络拥塞程度的影响)。
发送窗⼝的位置由窗⼝前沿和后沿的位置共同确定。
它后沿变化有两种,(1)不动(没有收到新的确定)(2)前移(收到新的确认);前沿是不断向前移动的,但也可能不动(1)没有收到新确认,对⽅窗⼝也不变,(2)收到新的确认,对⽅的接收窗⼝缩⼩了,使前沿正好不变)P3-P1:A的发送窗⼝P2-P1:已发送但是没有收到确定P3-P2:允许发送但是未发送(可⽤窗⼝)接收⽅B只对按序到达的数据中最⾼序号给出确认。
此外发送⽅和接收⽅都有⾃⼰的缓冲区发送缓冲区存放:1、发送发TCP准备发送的数据2、TCP已发送但尚未收到确认的数据(为超时重传准备)接收缓冲区存放:1、按序到达但未被应⽤程序读取的数据2、未按序到达的数据滑动窗⼝的3种协议1、1⽐特滑动窗⼝协议(发送窗⼝=1,接收窗⼝=1)当发送窗⼝和接收窗⼝⼤⼩都为1时,滑动窗⼝协议退化成停⽌等待协议,因为发送⽅需要判断每个发送的帧是新发送的帧还是超时重传的帧,故给每个帧前都加⼀个序号,由于停⽌等待协议中只有当⼀个帧发送确认后才能发送下⼀个,所以⽤1个⽐特来编号即可。
2、后退n协议(发送窗⼝>1,接收窗⼝>1)由于停等协议要为每⼀个帧进⾏确认后才继续发送下⼀帧,⼤⼤降低了信道利⽤率,因此⼜提出了后退n协议。
TCPIP协议详解
TCPIP协议详解TCP/IP协议详解TCP/IP协议是互联网最常用的协议之一,它负责网络中数据的传输和通信。
本文将详细讲解TCP/IP协议的基本概念、架构和各层的功能。
一、引言随着互联网的不断发展,TCP/IP协议被广泛应用于各种网络环境中。
它是一个开放的协议,能够支持多种不同的网络设备和操作系统之间的通信。
二、TCP/IP协议的层次结构TCP/IP协议采用分层的设计结构,共分为四层,分别是网络接口层、网络层、传输层和应用层。
下面将对每一层进行详细介绍。
2.1 网络接口层网络接口层是TCP/IP协议的最底层,它负责处理网络物理接口和网络设备之间的通信。
主要包括硬件驱动程序、网络数据帧的封装和解封装等功能。
2.2 网络层网络层是建立在网络接口层之上的一层,它主要负责数据包的路由和转发。
在网络层中,使用IP地址来标识网络中的设备,并通过路由器来实现数据包的转发。
2.3 传输层传输层是TCP/IP协议的核心层,它提供可靠的数据传输和面向连接的通信服务。
在传输层中,有两个主要的协议,即传输控制协议(TCP)和用户数据报协议(UDP)。
2.4 应用层应用层是TCP/IP协议的最高层,它提供各种网络应用程序之间的通信服务。
在应用层中,有很多常见的协议,比如HTTP、FTP、SMTP等。
三、TCP/IP协议的工作原理TCP/IP协议是通过数据包来进行通信的。
发送端将数据按照一定的格式封装成数据包,然后通过网络传输到接收端,接收端再解析数据包并进行相应的处理。
TCP/IP协议的传输方式可以分为面向连接和面向无连接两种。
面向连接的传输方式是指在发送数据之前,需要先在发送端和接收端之间建立一个连接,然后再进行数据传输。
而面向无连接的传输方式则不需要建立连接,直接进行数据传输。
四、TCP/IP协议的优缺点TCP/IP协议作为互联网最主要的协议之一,具有许多优点。
首先,它是一个非常健壮和可靠的协议,能够提供稳定的数据传输服务。
TCPIP协议知识科普
TCPIP协议知识科普简介本⽂主要介绍了⼯作中常⽤的TCP/IP对应协议栈相关基础知识,科普⽂。
本博客所有⽂章:TCP/IP⽹络协议栈TCP/IP⽹络协议栈分为四层, 从下⾄上依次是:1. 链路层其实在链路层下⾯还有物理层, 指的是电信号的传输⽅式, ⽐如常见的双绞线⽹线, 光纤, 以及早期的同轴电缆等, 物理层的设计决定了电信号传输的带宽, 速率, 传输距离, 抗⼲扰性等等。
在链路层本⾝, 主要负责将数据跟物理层交互, 常见⼯作包括⽹卡设备的驱动, 帧同步(检测什么信号算是⼀个新帧), 冲突检测(如果有冲突就⾃动重发), 数据差错校验等⼯作。
链路层常见的有以太⽹, 令牌环⽹的标准。
2. ⽹络层⽹络层的IP协议是构成Internet的基础。
该层次负责将数据发送到对应的⽬标地址, ⽹络中有⼤量的路由器来负责做这个事情, 路由器往往会拆掉链路层和⽹络层对应的数据头部并重新封装。
IP层不负责数据传输的可靠性, 传输的过程中数据可能会丢失, 需要由上层协议来保证这个事情。
3. 传输层⽹络层负责的是点到点的协议, 即只到某台主机, 传输层要负责端到端的协议, 即要到达某个进程。
典型的协议有TCP/UDP两种协议, 其中TCP协议是⼀种⾯向连接的, 稳定可靠的协议, 会负责做数据的检测, 分拆和重新按照顺序组装,⾃动重发等。
⽽UDP就只负责将数据送到对应进程, ⼏乎没有任何逻辑, 也就是说需要应⽤层⾃⼰来保证数据传输的可靠性。
4. 应⽤层即我们常见的HTTP, FTP协议等。
这四层协议对应的数据包封装如下图:四层协议对应的通信过程如下图:链路层以太⽹数据帧以太⽹数据帧格式如下:说明如下:1. ⽬的地址和源地址是指⽹卡的硬件地址(即MAC地址), 长度是48位, 出⼚的时候固化的。
2. 类型字段即上层协议类型, ⽬前有三种值: IP, ARP, RARP。
3. 数据对应了上层协议传输的数据, 以太⽹规定数据⼤⼩是46~1500字节, 最⼤值1500即以太⽹的最⼤传输单元(MTU), 不同⽹络类型有不同MTU, 如果需要跨不同类型链路传输的话, 就需要对数据进⾏重新分⽚。
TCPIP详解学习笔记(15)--TCP的流量控制和拥塞控制
TCPIP详解学习笔记(15)--TCP的流量控制和拥塞控制TCP的流量控制1.概述所谓的流量控制就是让发送⽅的发送速率不要太快,让接收⽅来得及接受。
利⽤滑动窗⼝机制可以很⽅便的在TCP连接上实现对发送⽅的流量控制。
TCP的窗⼝单位是字节,不是报⽂段,发送⽅的发送窗⼝不能超过接收⽅给出的接收窗⼝的数值。
如图所⽰,说明了利⽤可变窗⼝⼤⼩进⾏流量控制。
设主机A向主机B发送数据。
双⽅确定的窗⼝值是400.再设每⼀个报⽂段为100字节长,序号的初始值为seq=1,图中的箭头上⾯⼤写ACK,表⽰⾸部中的却认为为ACK,⼩写ack表⽰确认字段的值。
接收⽅的主机B进⾏了三次流量控制。
第⼀次把窗⼝设置为rwind=300,第⼆次减⼩到rwind=100最后减到rwind=0,即不允许发送⽅再发送过数据了。
这种使发送⽅暂停发送的状态将持续到主机B重新发出⼀个新的窗⼝值为⽌。
假如,B向A发送了零窗⼝的报⽂段后不久,B的接收缓存⼜有了⼀些存储空间。
于是B向A发送了rwind=400的报⽂段,然⽽这个报⽂段在传送中丢失了。
A⼀直等待收到B发送的⾮零窗⼝的通知,⽽B也⼀直等待A发送的数据。
这样就死锁了。
为了解决这种死锁状态,TCP为每个连接设有⼀个持续计时器。
只要TCP连接的⼀⽅收到对⽅的零窗⼝通知,就启动持续计时器,若持续计时器设置的时间到期,就发送⼀个零窗⼝探测报⽂段(仅携带1字节的数据),⽽对⽅就在确认这个探测报⽂段时给出了现在的窗⼝值。
2.TCP报⽂段发送时机的选择TCP豹纹短短发送时机主要有以下⼏种选择途径。
1)TCP维持⼀个变量,它等于最⼤报⽂段长度MSS,只要缓存中存放的数据达到MSS字节就组装成⼀个TCP报⽂段发送出去。
2)由发送⽅的应⽤程序指明要求发送报⽂段,即TCP⽀持的推送操作3)是发送⽅的⼀个计时器期限到了,这时就把当前已有的缓存数据装⼊报⽂段发送出去。
TCP的拥塞控制1.拥塞控制的原理在某段时间,若对⽹络中的某⼀资源的需求超过了该资源所能提供的可⽤部分,⽹络的性能就要变化,这种情况叫做拥塞。
TCPIP详解 卷一 第一章
从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠
性必须由应用层来提供。
这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
4) 应用层负责处理特定的应用程序细节。几乎各种不同的 TCP/IP实现都会提供下面这些
通用的应用程序:
2使用TCP/IP详解,卷1:协议
构造互连网最简单的方法是把两个或多个网络通过路由器进行连接。它是一种特殊的用 于网络互连的硬件盒。路由器的好处是为不同类型的物理网络提供连接:以太网、令牌环网、 点对点的链接和 FDDI(光纤分布式数据接口)等等。
这些盒子也称作IP路由器(IP Router),但我们这里使用路由器 (Router)这个术语。 从历史上说,这些盒子称作网关( gateway),在很多 TCP/IP文献中都使用这个术语。 现在网关这个术语只用来表示应用层网关:一个连接两种不同协议族的进程(例如, TCP/IP和IBM的SNA),它为某个特定的应用程序服务(常常是电子邮件或文件传输)。
IP、ICMP和IGMP 设备驱动程序及接口卡
1) 链路层,有时也称作数据链路层或网络接口层, 通常包括操作系统中的设备驱动程序和计算机
图1-1 TCP/IP协议族的四个层次
中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2) 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在
互联网的目的之一是在应用程序中隐藏所有的物理细节。虽然这一点在图 1-3由两个网络 组成的互联网中并不很明显,但是应用层不能关心(也不关心)一台主机是在以太网上,而 另一台主机是在令牌环网上,它们通过路由器进行互连。随着增加不同类型的物理网络,可 能会有 20个路由器,但应用层仍然是一样的。物理细节的隐藏使得互联网功能非常强大,也 非常有用。
TCPIP详解-卷一-协议-6.4ICMP时间戳请求与应答
6.4ICMP 时间戳请求与应答ICMP 时间戳请求允许系统向另一个系统查询当前的时间。
返回的建议值是自午夜开始计算的毫秒数,协调的统一时间(CoordinatedUniversalTime,UTC )(早期的参考手册认为UTC 是格林尼治时间)。
这种ICMP 报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些Unix 系统提供的rdate 命令)只能提供秒级的分辨率。
由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。
ICMP 时间戳请求和应答报文格式如图6-6所示。
图6-6ICMP 时间戳请求和应答报文请求端填写发起时间戳,然后发送报文。
应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。
但是,实际上,大多数的实现把后面两个字段都设成相同的值(提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间)。
6.4.1举例我们可以写一个简单程序(取名为icmptime ),给某个主机发送ICMP 时间戳请求,并打印出返回的应答。
它在我们的小互联网上运行结果如下:程序打印出ICMP 报文中的三个时间戳:发起时间戳(orig )、接收时间戳(recv )以及发送时间戳(xmit )。
正如我们在这个例子以及下面的例子中所看到的那样,所有的主机把接收时间戳和发送时间戳都设成相同的值。
我们还能计算出往返时间(rtt ),它的值是收到应答时的时间值减去发送请求时的时间值。
difference 的值是接收时间戳值减去发起时间戳值。
这些值之间的关系如图6-7所示。
图6-7icmptime 程序输出的值之间的关系如果我们相信RTT 的值,并且相信RTT 的一半用于请求报文的传输,另一半用于应答报文的传输,那么为了使本机时钟与查询主机的时钟一致,本机时钟需要进行调整,调整值是difference 减去RTT 的一半。
在前面的例子中,bsdi 的时钟比sun 的时钟要慢7ms 和8ms 。
TCPIP详解-卷一-协议-6.4ICMP时间戳请求与应答
6.4ICMP 时间戳请求与应答ICMP 时间戳请求允许系统向另一个系统查询当前的时间。
返回的建议值是自午夜开始计算的毫秒数,协调的统一时间(CoordinatedUniversalTime,UTC )(早期的参考手册认为UTC 是格林尼治时间)。
这种ICMP 报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些Unix 系统提供的rdate 命令)只能提供秒级的分辨率。
由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。
ICMP 时间戳请求和应答报文格式如图6-6所示。
图6-6ICMP 时间戳请求和应答报文请求端填写发起时间戳,然后发送报文。
应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。
但是,实际上,大多数的实现把后面两个字段都设成相同的值(提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间)。
6.4.1举例我们可以写一个简单程序(取名为icmptime ),给某个主机发送ICMP 时间戳请求,并打印出返回的应答。
它在我们的小互联网上运行结果如下:程序打印出ICMP 报文中的三个时间戳:发起时间戳(orig )、接收时间戳(recv )以及发送时间戳(xmit )。
正如我们在这个例子以及下面的例子中所看到的那样,所有的主机把接收时间戳和发送时间戳都设成相同的值。
我们还能计算出往返时间(rtt ),它的值是收到应答时的时间值减去发送请求时的时间值。
difference 的值是接收时间戳值减去发起时间戳值。
这些值之间的关系如图6-7所示。
图6-7icmptime 程序输出的值之间的关系如果我们相信RTT 的值,并且相信RTT 的一半用于请求报文的传输,另一半用于应答报文的传输,那么为了使本机时钟与查询主机的时钟一致,本机时钟需要进行调整,调整值是difference 减去RTT 的一半。
在前面的例子中,bsdi 的时钟比sun 的时钟要慢7ms 和8ms 。
TCPIP详解读书笔记(第七章 Ping程序
TCP/IP详解读书笔记(第七章Ping程序)Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达。
该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
Ping程序我们称发送回显请求的Ping程序为客户,而称被Ping的主机为服务器。
大多数的TCP/IP实现都在内核中直接支持Ping服务器,这种服务器不是一个用户进程。
ICMP回显请求和回显应答报文如图1所示。
图1:ICMP回显请求和回显应答报文格式Unix系统在实现ping程序时是把ICMP报文中的标识符字段置成发送进程的ID号。
这样即使在同一台主机上同时运行了多个ping程序实例, ping程序也可以识别出返回的信息。
序列号从0开始,每发送一次新的回显请求就加1。
ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。
IP是一种最好的数据报传递服务,因此这三个条件都有可能发生。
IP记录路由选项ping程序为我们提供了查看IP记录路由(RR)选项的机会。
大多数不同版本的ping程序都提供-R选项,以提供记录路由的功能。
它使得ping程序在发送出去的IP数据报中设置IPRR选项(该IP数据报包含ICMP回显请求报文)。
这样,每个处理该数据报的路由器都把它的IP地址放入选项字段中。
当数据报到达目的端时, IP地址清单应该复制到ICM P回显应答中,这样返回途中所经过的路由器地址也被加入清单中。
当ping程序收到回显应答时,它就打印出这份IP地址清单。
最大的问题是IP首部中只有有限的空间来存放IP地址。
IP首部中的首部长度字段只有4bit,因此整个IP首部最长只能包括15(4bit全为1,8+4+2+1=1 5)个32bit长的字(即60个字节)。
由于IP首部固定长度为20字节(参加第三章的IP首部格式), RR选项用去3个字节,这样只剩下37个字节(60-20-3)来存放IP地址清单,也就是说只能存放9(4×9)个IP地址。
TCPIP协议详解
TCPIP协议详解TCP/IP三次握⼿TCP建⽴连接为什么是三次握⼿,⽽不是两次或四次?TCP,名为传输控制协议,是⼀种可靠的传输层协议,IP协议号为6。
顺便说⼀句,原则上任何数据传输都⽆法确保绝对可靠,三次握⼿只是确保可靠的基本需要。
举个⽇常例⼦,打电话时我们对话如下:对应为客户端与服务器之间的通信:具体过程,⽤两个⼈的对话形式来演⽰:我:1+1等于⼏?她:2,2+2等于⼏?我:4⾸先两个⼈约定协议1.感觉⽹络情况不对的时候,任何⼀⽅都可以发起询问2.任何情况下,若发起询问后5秒还没收到回复,则认为⽹络不通3.⽹络不通的情况下等1min,路由器之后再发起询问对于我⽽⾔,发起 “1+1等于⼏”的询问后1. 若5s内没有收到回复,则认为⽹络不通2. 若收到回复,则我确认①我能听到她的消息②她能听到我的消息,然后回复她的问题的答案对于她⽽⾔,当感觉⽹络情况不对的时候1. 若没有收到我的询问,则她发起询问2. 若收到“1+1等于⼏”,则她确认①她可以听到我的消息,然后回复我的问题的答案和她的问题“2,2+2等于⼏”3. 若5s内没有收到我的回复“4”,则她确认②我听不见她的消息4. 若5s内收到了我的回复“4”,则她确认②我可以听见她的消息这样,如果上⾯的对话得以完成,就证明双⽅都可以确认⾃⼰可以听到对⽅的声⾳,对⽅也可以听到⾃⼰的声⾳TCP/IP断开连接的四次挥⼿先由客户端向服务器端发送⼀个FIN,请求关闭数据传输。
当服务器接收到客户端的FIN时,向客户端发送⼀个ACK,其中ack的值等于FIN+SEQ然后服务器向客户端发送⼀个FIN,告诉客户端应⽤程序关闭。
当客户端收到服务器端的FIN是,回复⼀个ACK给服务器端。
其中ack的值等于FIN+SEQ为什么断开tcp/ip连接,需要四次挥⼿;确保数据能够完整传输。
当被动⽅收到主动⽅的FIN报⽂通知时,它仅仅表⽰主动⽅没有数据再发送给被动⽅了。
但未必被动⽅所有的数据都完整的发送给了主动⽅,所以被动⽅不会马上关闭SOCKET,它可能还需要发送⼀些数据给主动⽅后,再发送FIN报⽂给主动⽅,告诉主动⽅同意关闭连接,所以这⾥的ACK报⽂和FIN报⽂多数情况下都是分开发送的。
TCPIP协议栈详解
TCPIP协议栈详解TCP/IP协议栈详解TCP/IP协议栈是互联网通信中使用的一种协议体系,由TCP (Transmission Control Protocol)和IP(Internet Protocol)两个部分组成。
它是实现网络通信的基础架构,它的设计和实现使得不同网络和设备之间能够相互通信。
一、TCP/IP协议栈的基本概念TCP/IP协议栈是一种分层结构,按照不同的功能和责任将通信的各个部分分为不同的层次。
这样的分层设计使得每个层次的功能职责明确,便于维护和扩展。
TCP/IP协议栈的基本层次包括物理层、数据链路层、网络层、传输层和应用层。
1. 物理层物理层是TCP/IP协议栈的最底层,负责传输原始比特流。
它定义了不同设备之间如何通过物理介质(例如光纤、电缆)传输数据。
2. 数据链路层数据链路层负责将数据包从一个节点传输到另一个节点。
它将原始比特流转换为数据帧,并处理错误检测和纠正等功能。
常用的数据链路层协议有以太网(Ethernet)和无线局域网(Wi-Fi)等。
3. 网络层网络层是TCP/IP协议栈中的核心层,负责实现不同网络之间的通信。
它通过IP协议为数据包分配地址,并进行路由选择和转发。
常用的网络层协议有IPv4和IPv6。
4. 传输层传输层提供端到端的可靠数据传输服务。
它通过TCP协议和UDP 协议实现数据传输,其中TCP协议提供可靠的、面向连接的传输,而UDP协议提供无连接的传输。
5. 应用层应用层是TCP/IP协议栈中的最高层,为用户提供各种网络应用服务。
常见的应用层协议有HTTP、FTP、SMTP和DNS等。
二、TCP/IP协议的工作原理TCP/IP协议栈的工作原理是按照自上而下的方式进行数据传输。
当用户发送数据时,应用层先将数据封装成应用层报文,然后传递给传输层。
传输层将应用层报文分割为较小的数据段,并为每个数据段加上序号和校验等信息。
然后,传输层通过网络层将数据段封装成IP数据包,并进行路由选择。
TCPIP详解-卷一-协议-6.5ICMP端口不可达差错
6.5ICMP 端口不可达差错最后两小节我们来讨论ICMP 查询报文—地址掩码和时间戳查询及应答。
现在来分析一种ICMP 差错报文,即端口不可达报文,它是ICMP 目的不可到达报文中的一种,以此来看一看ICMP 差错报文中所附加的信息。
使用UDP (见第11章)来查看它。
UDP 的规则之一是,如果收到一份UDP 数据报而目的端口与某个正在使用的进程不相符,那么UDP 返回一个ICMP 不可达报文。
可以用TFTP 来强制生成一个端口不可达报文(TFTP 将在第15章描述)。
对于TFTP 服务器来说,UDP 的公共端口号是69。
但是大多数的TFTP 客户程序允许用connect 命令来指定一个不同的端口号。
这里,我们就用它来指定8888端口:connect 命令首先指定要连接的主机名及其端口号,接着用get 命令来取文件。
敲入get 命令后,一份UDP 数据报就发送到主机svr4上的8888端口。
tcpdump 命令引起的报文交换结果如图6-8所示。
图6-8由TFTP 产生的ICMP 端口不可达差错在UDP 数据报送到svr4之前,要先发送一份ARP 请求来确定它的硬件地址(第1行)。
接着返回ARP 应答(第2行),然后才发送UDP 数据报(第3行)(在tcpdump 的输出中保留ARP 请求和应答是为了提醒我们,这些报文交换可能在第一个IP 数据报从一个主机发送到另一个主机之前是必需的。
在本书以后的章节中,如果这些报文与讨论的题目不相关,那么我们将省略它们)。
一个ICMP 端口不可达差错是立刻返回的(第4行)。
但是,TFTP 客户程序看上去似乎忽略了这个ICMP 报文,而在5秒钟之后又发送了另一份UDP 数据报(第5行)。
在客户程序放弃之前重发了三次。
注意,ICMP 报文是在主机之间交换的,而不用目的端口号,而每个20字节的UDP 数据报则是从一个特定端口(2924)发送到另一个特定端口(8888)。
TCPIP详解
TCPIP详解TCP/IP不是⼀个协议,⽽是⼀个协议族的统称。
⾥⾯包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。
TCP/IP协议分层提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同。
如图所⽰TCP/IP协议族按照层次由上到下,层层包装。
最上⾯的就是应⽤层了,这⾥⾯有http,ftp,等等我们熟悉的协议。
第⼆层则是传输层,著名的TCP和UDP(User Datagram Protocol)协议就在这个层次。
第三层是⽹络层,IP协议就在这⾥,它负责对数据加上IP地址和其他的数据以确定传输的⽬标。
第四层是叫数据链路层,这个层次为待传送的数据加⼊⼀个以太⽹协议头,并进⾏CRC编码,为最后的数据传输做准备。
再往下则是硬件层次了,负责⽹络的传输,这个层次的定义包括⽹线的制式,⽹卡的定义等等发送协议的主机从上⾃下将数据按照协议封装,⽽接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。
这种结构⾮常有栈的味道,所以某些⽂章也把tcp/ip协议族称为tcp/ip协议栈。
⼀些基本的常识互联⽹地址(ip地址):⽹络上每⼀个节点都必须有⼀个独⽴的Internet地址(也叫做IP地址)。
现在,通常使⽤的IP地址是⼀个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。
IPv4标准上,地址被分为五类,我们常⽤的是B类地址。
具体的分类请参考其他⽂档。
需要注意的是IP地址是⽹络号+主机号的组合,这⾮常重要。
域名系统:域名系统是⼀个分布的数据库,它提供将主机名(就是⽹址啦)转换成IP地址的服务。
RFC:RFC是什么?RFC就是tcp/ip协议的标准⽂档,它⼀共有4000多个协议的定义,当然,我们所要学习的,也就是那么⼗⼏个协议⽽已。
端⼝号(port):这个端⼝号是⽤在TCP,UDP上的⼀个逻辑号码,并不是⼀个硬件端⼝,我们平时说把某某端⼝封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了⽽已。
什么是TCPIP-tcpip详解
TCP/IP是Transmission Control Protocol/Internet Protocol(传输控制协议/网际互联协议)的缩写。
它是1978年~1979年由美国国防部高级研究计划局开发的用于异构网络的通信协议,协议包含了远程登录(Telnet)、文件传送(FTP)、电子邮件(SMTP)等,适用于各种不同的计算机系统的互联。
TCP/IP是目前十分流行的一种网络协议,它可提供任意互连的网络间的通信,几乎所用的网络操作系统都支持TCP/IP协议。
它是目前广泛使用的Internet的基础,虽然它不是国际标准,但事实上已成为计算机网络的工业标准。
2、TCP/IP应用两例TCP/IP应用一:远程登录(Telnet)UNIX是一个多用户系统。
多用户系统都有用户帐号概念。
用户帐号规定了用户对系统的使用权,用户登录进入后就可以访问系统的全部或部分资源。
远程登录就是指一个远地用户通过TCP/IP进入帐号,访问远地资源。
TELNET协议的目的是提供一个通用、双向、基于8位字符的通信服务。
它是面向终端的处理。
是一种网络上的虚终端。
(NVT)远程登录的目的在于访问远地系统的资源。
一个用户在登录后系统并不区分是否是本地用户。
所以用户在本地可以作的任何操作都可在远地进行。
如用户需要进行编译等操作是就需要TELNET到服务器上进行。
微机上的TELNET程序很多。
一般WINDOWS下的比较好(常见的有NETTERM、TERATERM、EASN等),大多支持中文。
DOS下的支持中文的TELNET较少。
TELNET到主机后使用主机操作系统命令。
(一般是UNIX命令)TCP/IP应用二:文件传输(FTP)FTP是用于TCP/IP网络的文件传输应用。
是TCP/IP中使用最广泛的应用之一。
FTP是基于客户/服务器模型设计的,客户和服务器之间利用TCP建立连接。
FTP服务器在这里是指提供FTP服务的机器。
任何一个UNIX系统都提供FTP Server服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCP/IP详解学习笔记(1)-基本概念为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。
就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。
计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。
只有把它们联合起来,电脑才会发挥出它最大的潜力。
于是人们就想方设法的用电线把电脑连接到了一起。
但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。
因而他们需要定义一些共通的东西来进行交流,TCP/IP 就是为此而生。
TCP/IP不是一个协议,而是一个协议族的统称。
里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。
电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。
TCP/IP协议分层提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同。
如图所示TCP/IP协议族按照层次由上到下,层层包装。
最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。
而第二层则是传输层,著名的TCP和UDP协议就在这个层次(不要告诉我你没用过udp玩星际)。
第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。
第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。
再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip协议的编写者没有任何的关系。
发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。
这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。
一些基本的常识在学习协议之前,我们应该具备一些基本知识。
互联网地址(ip地址)网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。
现在,通常使用的IP地址是一个32bit 的数字,也就是我们常说的IPv4 标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。
IPv4标准上,地址被分为五类,我们常用的是B类地址。
具体的分类请参考其他文档。
需要注意的是IP地址是网络号+主机号的组合,这非常重要。
域名系统域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。
RFCRFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。
端口号(port)注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。
应用编程接口现在常用的编程接口有socket和TLI。
而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。
TCP/IP详解学习笔记(2)-数据链路层数据链路层有三个目的:•为IP模块发送和接收IP数据报。
•为ARP模块发送ARP请求和接收ARP应答。
•为RARP发送RARP请求和接收RARP应答ip大家都听说过。
至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)数据链路层的协议还是很多的,有我们最常用的以太网(就是平时我们用的网卡)协议,也有不太常见的令牌环,还有FDDI,当然,还有国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。
联系linux里面的ifconfig -a命令,这个命令通常会得到如下的结果其中,eth0就是以太网接口,而lo则是loopback接口。
这也说明这个主机在网络链路层上至少支持loopback 协议和以太网协议。
以太网(Ether-net)的定是指数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox 公司在1982年联合公布的一个标准,这个标准里面使用了一种称作CSMA/CD的接入方法。
而IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准。
这两个标准稍有不同,TCP/IP协议对这种情况的处理方式如下:•以太网的IP数据报封装在RFC894中定义,而IEEE802网络的IP数据报封装在RFC1042中定义。
•一台主机一定要能发送和接收RFC894定义的数据报。
•一台主机可以接收RFC894和RFC1042的封装格式的混合数据报。
•一台主机也许能够发送RFC1042数据报。
如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894分组。
可见,RFC1042在TCP/IP里面处于一个配角的地位。
这两种不同的数据报格式请参考教材。
ppp(点对点协议)是从SLIP的替代品。
他们都提供了一种低速接入的解决方案。
而每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU,注意PPP的MTU并不是一个物理定义,而是指一个逻辑定义(个人认为就是用程序控制)。
可以用netstat来打印出MTU的结果,比如键入netstat -in1500 0 1774 0 0 0 587 0 016436 0 2667 0 0 0 2667 0 0就可以观察到eth0的MTU是1500。
而lo(环回接口)的MTU则是16436。
最后说说那个环回接口(loopback)。
平时我们用127.0.0.1来尝试自己的机器服务器好使不好使。
走的就是这个loopback接口。
对于环回接口,有如下三点值得注意:•传给环回地址(一般是127.0.0.1)的任何数据均作为I P输入。
•传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
这是因为广播传送和多播传送的定义包含主机本身。
•任何传给该主机IP地址的数据均送到环回接口。
这一章还是很简单的,一般作为了解知识也就足够了,没必要抠的那么详细。
TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac 地址,IP则承载要发送的消息。
数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。
1. IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。
要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP 或UDP要做的事情。
所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。
这是后话,暂且不提1.1. IP协议头如图所示挨个解释它是教科书的活计,我感兴趣的只是那八位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。
这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255,也就是因为这个TTL在IP协议里面只有8bit。
现在的ip版本号是4,所以也称作IPv4。
现在还有IPv6,而且运用也越来越广泛了。
1.2. IP路由选择当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货"的呢?最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。
至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。
稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。
那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。
路由器或者主机将会用如下的方式来处理某一个IP数据包1如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。
2搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机3搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要“子网掩码(1.3.)”的协助。
如果找到路由器,则将该包发向路由器。
4搜索路由表,如果匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,如果找到路由器,则将该包发向路由器。
5搜索陆游表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包6如果都失败了,就丢掉这个包。
这再一次证明了,ip包是不可靠的。
因为它不保证送达。
1.3. 子网寻址IP地址的定义是网络号+主机号。
但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。
最终一个IP地址就成为网络号码+子网号+主机号。
例如一个B类地址:210.30.109.134。
一般情况下,这个IP地址的红色部分就是网络号,而蓝色部分就是子网号,绿色部分就是主机号。
至于有多少位代表子网号这个问题上,这没有一个硬性的规定,取而代之的则是子网掩码,校园网相信大多数人都用过,在校园网的设定里面有一个255.255.255.0的东西,这就是子网掩码。
子网掩码是由32bit的二进制数字序列,形式为是一连串的1和一连串的0,例如:255.255.255.0(二进制就是11111111.11111111.11111111.00000000) 对于刚才的那个B类地址,因为210.30是网络号,那么后面的109.134就是子网号和主机号的组合,又因为子网掩码只有后八bit为0,所以主机号就是IP地址的后八个bit,就是134,而剩下的就是子网号码--109。