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[指南]
![理解tcpip[指南]](https://img.taocdn.com/s3/m/ac0df152e55c3b3567ec102de2bd960590c6d92b.png)
一.了解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, 如果需要跨不同类型链路传输的话, 就需要对数据进⾏重新分⽚。
- 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。