1.     什么是TCP/IP协议?

 

TCP/IP是一个协议的集合,是一个协议族的统称,里面包括了IP协议,IMCP协议,TCP协议,还有HTTP协议,FTP协议等等,我们的

电脑之间有了这些规定,就相当于规定了人与人之间交流的语法之类的,有了这些协议,我们的电脑之间也就可以相互交流发送消

息了。

 

在了解什么是TCP/IP协议族之前我们先学习几个小知识:

 

域名系统:这个呢,平时我们使用的几乎都是域名,比如:www.baidu.com这就是百度的域名,域名系统呢主要就是把我们平时所使用

的域名和他真实的IP地址进行转换,比如你在浏览器输入www.baidu.com,域名系统就会转化为202.108.22.5,如果你在浏览器的输

入栏输入他的IP地址,还是会出现相同的页面,之所以会有域名,那肯定是为了好记呀,谁没事记住那么长的IP地址,域名多方便记

忆的。

 

互联网地址(ip地址):上面我们说了域名==IP地址,域名系统就是转化的,那么什么是互联网地址呢,我们使用的网络上每一个节点

都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这

32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B类地址。需要注意的

是IP地址是网络号+子网号+主机号。

 

普及一下IP地址的分类:

A类IP地址:一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从

0.0.0.0~126.255.255.255。可用的A类网络有126个,每个网络能容纳1亿多个主机。 

 

B类IP地址:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从

128.0.0.0~191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 

 

C类IP地址:一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从

192.0.0.0~223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 

 

D类IP地址:D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广

播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 D类地址称为广播地址,供特殊

协议向选定的节点发送信息时用

 

E类IP地址:以“llll0”开始,为将来使用保留。 

 

接下来继续学习新知识:

RFC: 是tcp/ip协议的标准文档,现在它一共有4000多个协议的定义,而我们所要学习的,也就是那么十几个协议而已。

 

端口号(port):注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是

在IP层次把带有这个号码的IP包给过滤掉了而已。

 

应用编程接口:现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有

多大的贡献。

 

 

那么前面既然说TCP/IP是一个协议族,我们就来看看这个协议族是个怎么样的种族?

 TCP/IP基本概念-LMLPHP

 

那么这个TCP/IP协议族呢就是这么个分层的方法。

 

首先是

 

应用层:应用层里面主要就是HTTP/FTP协议和一些其他的协议。

 

传输层:这一层包括TCP/UDP协议和其他的一些协议。

 

网络层:主要是RAP/RARP协议和其他的一些协议。

 

数据链路层:主要是为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。

 

再继续往下的话就是硬件部分的知识了,包括网线,网卡之类的制定,这些也就不属于我们关注的范畴咯。

数据链路层:

 

数据链路层的作用主要有三个

(1)为IP模块发送和接收IP数据报。

(2)为ARP模块发送ARP请求和接收ARP应答。

(3)为RARP发送RARP请求和接收RARP应答。

 

IP在上一篇文章中为大家详细介绍了,ARP叫做地址解析协议,是把IP地址转换为MAC地址的一种协议,RARP叫做反向地址转换协议,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。

 

 

 数据链路层的协议数据单元——帧:将IP层(网络层)的数据报添加首部和尾部封装成帧。

    

数据链路层协议有许多种,都会解决三个基本问题,封装成帧,透明传输,差错检测。

 

同时, TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等。

 

   最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。

 

如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的大小都小于或者等于链路层的MTU值。当同一网络上的主机互相进行通信时,该网络的MTU对通信双方非常重要。但当主机间要通过很多网络才能通信时,对通信双方最重要的是通信路径中最小的MTU,因为在通信路径上不同网络的链路层MTU不同。通信路径中最小的MTU被称为路径MTU。

网络IP协议层

 

IP是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。

 

 IP提供不可靠,无连接的数据报传送服务。

 

不可靠:它不能保证IP数据报能成功的到达目的地。

 

无连接:IP并不维护关于后续数据报的状态信息。每个数据报的处理都是相互独立的。

 

IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制,这被认为是上层协议TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。

 

目前的IP协议时第4版本,也叫ipv4,不过ipv6也引用的越来越广泛了。

ARP:地址解析协议(Address ResolutionProtocol,ARP)是在仅知道主机的IP地址时确地址解析协议定其物理地址的一种协议。

 

 在TCP/IP协议中,A给B发送IP包,在报头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址。

 

计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议。


在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。 A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。

 

本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。

 

RARP:反向地址转换协议(RARP:Reverse Address Resolution Protocol) 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。

 

RARP工作原理:

(1)将源设备和目标设备的MAC地址字段都设为发送者的MAC地址和IP地址,发送主机发送一个本地的RARP广播,能够到达网络上的所有设备,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;


(2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;


(3)如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;


(4) 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

10-13 04:24