1、应用层:
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
2、传输层:
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
3、网络层:
负责相邻计算机之间的通信。其功能包括三方面。
(1)处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
(2)处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
(3)处理路径、流控、拥塞等问题。
4、网络接口层:
这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
TCPIP协议及配置
网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供该层的socket,从而允许用户直接操作IP包。
IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包。IP包分为头部(header)和数据(Data)两部分。数据部分是要传送的信息,头部是为了能够实现传输而附加的信息(这与以太网帧的头部功能相类似,如果对帧感到陌生,可参看 小喇叭 一文)。
IP协议可以分为IPv4和IPv6两种。IPv6是改进版本,用于在未来取代IPv4协议。出于本文的目的,我们可以暂时忽略两者的区别,只以IPv4为例。下面是IPv4的格式
IPv4包 我们按照4 bytes将整个序列折叠,以便更好的显示
与帧类似,IP包的头部也有多个区域。我们将注意力放在红色的发出地(source address)和目的地(destination address)。它们都是IP地址。IPv4的地址为4 bytes的长度(也就是32位)。我们通常将IPv4的地址分为四个十进制的数,每个数的范围为0-255,比如192.0.0.1就是一个IP地址。填写在IP包头部的是该地址的二进制形式。
IP地址是全球地址,它可以识别”社区”(局域网)和”房子”(主机)。这是通过将IP地址分类实现的。
IP class From To Subnet Mask
A 1.0.0.0 126.255.255.255 255.0.0.0
B 128.0.0.0 191.255.255.255 255.255.0.0
C 192.0.0.0 223.255.255.255 255.255.255.0
每个IP地址的32位分为前后两部分,第一部分用来区分局域网,第二个部分用来区分该局域网的主机。子网掩码(Subnet Mask)告诉我们这两部分的分界线,比如255.0.0.0(也就是8个1和24个0)表示前8位用于区分局域网,后24位用于区分主机。由于A、B、C分类是已经规定好的,所以当一个IP地址属于B类范围时,我们就知道它的前16位和后16位分别表示局域网和主机。
网络协议概览 中说,IP地址是分配给每个房子(计算机)的“邮编”。但这个说法并不精确。IP地址实际上识别的是网卡(NIC, Network Interface Card)。网卡是计算机的一个硬件,它在接收到网路信息之后,将信息交给计算机(处理器/内存)。当计算机需要发送信息的时候,也要通过网卡发送。一台计算机可以有不只一个网卡,比如笔记本就有一个以太网卡和一个WiFi网卡。计算机在接收或者发送信息的时候,要先决定想要通过哪个网卡。
NIC
路由器(router)实际上就是一台配备有多个网卡的专用电脑。它让网卡接入到不同的网络中,这样,就构成在 网络协议概览 中所说的邮局。比如下图中位于中间位置的路由器有两个网卡,地址分别为199.165.145.17和199.165.146.3。它们分别接入到两个网络:199.165.145和199.165.146。
IP包的传输要通过路由器的接力。每一个主机和路由中都存有一个路由表(routing table)。路由表根据目的地的IP地址,规定了等待发送的IP包所应该走的路线。就好像下图的路标,如果地址是“东京”,那么请转左;如果地址是“悉尼”,那么请向右。
A real world routing table
比如我们从主机145.17生成发送到146.21的IP包:铺开信纸,写好信的开头(剩下数据部分可以是TCP包,可以是UDP包,也可以是任意乱写的字,我们暂时不关心),注明目的地IP地址(199.165.146.21)和发出地IP地址(199.165.145.17)。主机145.17随后参照自己的routing table,里面有三行记录:
145.17 routing table (Genmask为子网掩码,Iface用于说明使用哪个网卡接口)
Destination Gateway Genmask Iface
199.165.145.0 0.0.0.0 255.255.255.0 eth0
0.0.0.0 199.165.145.17 0.0.0.0 eth0
这里有两行记录。
第一行表示,如果IP目的地是199.165.145.0这个网络的主机,那么只需要自己在eth0上的网卡直接传送(“本地社区”:直接送达),不需要前往router(Gateway 0.0.0.0 = “本地送信”)。
第二行表示所有不符合第一行的IP目的地,都应该送往Gateway 199.165.145.17,也就是中间router接入在eth0的网卡IP地址(邮局在eth0的分支)。
我们的IP包目的地为199.165.146.21,不符合第一行,所以按照第二行,发送到中间的router。主机145.17会将IP包放入帧的payload,并在帧的头部写上199.165.145.17对应的MAC地址,这样,就可以按照 以太网与wifi协议 中的方法在局域网中传送了。
中间的router在收到IP包之后(实际上是收到以太协议的帧,然后从帧中的payload读取IP包),提取目的地IP地址,然后对照自己的routing table:
Destination Gateway Genmask Iface
199.165.145.0 0.0.0.0 255.255.255.0 eth0
199.165.146.0 0.0.0.0 255.255.255.0 eth1
0.0.0.0 199.165.146.8 0.0.0.0 eth1
从前两行我们看到,由于router横跨eth0和eth1两个网络,它可以直接通过eth0和eth1上的网卡直接传送IP包。
第三行表示,如果是前面两行之外的IP地址,则需要通过eth1,送往199.165.146.8(右边的router)。
我们的目的地符合第二行,所以将IP放入一个新的帧中,
在帧的头部写上199.165.146.21的MAC地址,直接发往主机146.21。
(在Linux下,可以使用$route -n来查看routing table)
IP包可以进一步接力,到达更远的主机。IP包从主机出发,根据沿途路由器的routing table指导,在router间接力。IP包最终到达某个router,这个router与目标主机位于一个局域网中,可以直接建立连接层的通信。最后,IP包被送到目标主机。这样一个过程叫做routing(我们就叫IP包接力好了,路由这个词实在是混合了太多的意思)。
整个过程中,IP包不断被主机和路由封装入帧(信封)并拆开,然后借助连接层,在局域网的各个NIC之间传送帧。整个过程中,我们的IP包的内容保持完整,没有发生变化。最终的效果是一个IP包从一个主机传送到另一个主机。利用IP包,我们不需要去操心底层(比如连接层)发生了什么。
在上面的过程中,我们实际上假设了,每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基本条件。IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。
ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个帧中)的工作方式如下:主机会发出一个ARP包,该ARP包中包含有自己的IP地址和MAC地址。通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:我是IP地址xxxx,我的MAC地址是xxxx,有人知道199.165.146.4的MAC地址吗?拥有该IP地址的主机会回复发出请求的主机:哦,我知道,这个IP地址属于我的一个NIC,它的MAC地址是xxxxxx。由于发送ARP请求的主机采取的是广播形式,并附带有自己的IP地址和MAC地址,其他的主机和路由会同时检查自己的ARP cache,如果不符合,则更新自己的ARP cache。
这样,经过几次ARP请求之后,ARP cache会达到稳定。如果局域网上设备发生变动,ARP重复上面过程。
(在Linux下,可以使用$arp命令来查看ARP的过程。ARP协议只用于IPv4。IPv6使用Neighbor Discovery Protocol来替代ARP的功能。)
我们还有另一个假设,就是每个主机和路由上都已经有了合理的routing table。这个routint table描述了网络的拓扑(topology)结构。如果你了解自己的网络连接,可以手写自己主机的routing table。但是,一个路由器可能有多个出口,所以routing table可能会很长。更重要的是,周围连接的其他路由器可能发生变动(比如新增路由器或者路由器坏掉),我们就需要routing table能及时将交通导向其他的出口。我们需要一种更加智能的探测周围的网络拓扑结构,并自动生成routing table。
我们以北京地铁为例子。如果从机场前往朝阳门,那么可以采取2号航站楼->>三元桥->>东直门->>朝阳门。2号航站楼和朝阳门分别是出发和目的主机。而三元桥和东直门为中间的两个router。如果三元桥->>东直门段因为维修停运,我们需要更改三元桥的routing table,从而给前往朝阳门的乘客(IP包)指示:请走如下路线三元桥->>芍药居。然后依照芍药居的routing table前往朝阳门(芍药居->>东直门->>朝阳门)。
一种用来生成routing table的协议是RIP(Routing Information Protocol)。它通过距离来决定routing table,所以属于distance-vector protocol。对于RIP来说,所谓的距离是从出发地到目的地途径的路由器数目(hop number)。比如上面从机场到朝阳门,按照2号航站楼->>三元桥->>东直门->>朝阳门路线,途径两个路由器,距离为2。我们最初可以手动生成三元桥的routing table。随后,根据RIP协议,三元桥向周围的路由器和主机广播自己前往各个IP的距离(比如到机场=0,团结湖=0,国贸=1,望京西=1,建国门=2)。收到RIP包的路由器和主机根据RIP包和自己到发送RIP包的主机的距离,算出自己前往各个IP的距离。东直门与三元桥的距离为1。东直门收到三元桥的RIP包(到机场的距离为0),那么东直门途径三元桥前往机场的距离为1+0=1。如果东直门自己的RIP记录都比这个远(比如东直门->>芍药居->>三元桥->>机场 = 2)。那么东直门更改自己的routing table:前往机场的交通都发往三元桥而不是芍药居。如果东直门自身的RIP记录并不差,那么东直门保持routing table不变。上述过程在各个点不断重复RIP广播/计算距离/更新routing table的过程,最终所有的主机和路由器都能生成最合理的路径(merge)。
(RIP的基本逻辑是:如果A距离B为6,而我距离A为1,那么我途径A到B的距离为7)
RIP出于技术上的原因(looping hops),认为距离超过15的IP不可到达。所以RIP更多用于互联网的一部分(比如整个中国电信的网络)。这样一个互联网的部分往往属于同一个ISP或者有同一个管理机构,所以叫做自治系统(AS,autonomous system)。自治系统内部的主机和路由根据通向外部的边界路由器来和其它的自治系统通信。各个边界路由器之间通过BGP(Border Gateway Protocol)来生成自己前往其它AS的routing table,而自治系统内部则参照边界路由器,使用RIP来决定routing table。BGP的基本工作过程与RIP类似,但在考虑距离的同时,也权衡比如政策、连接性能等其他因素,再决定交通的走向(routing table)。
我们一开始讲述了IP包根据routing table进行接力的过程。为了顺利实现接力,我们又进一步深入到ARP和RIP/BGP。这三个协议都协助了IP传输。ARP让每台电脑和路由器知道自己局域网内IP地址和MAC地址的对应关系,从而顺利实现IP包到帧的封装。RIP协议可以生成自治系统内部合理的routing table。BGP协议可以生成自治系统外部的routing table。
在整个过程中,我们都将注意力放在了IP包大的传输过程中,而故意忽略一些细节。 而上面的IP接力过程适用于IPv6。
【TCP/IP详解】系列教程
互联网协议入门 1
互联网协议入门 2
TCP-IP协议详解(1)网络协议概观
TCP-IP协议详解(2) 以太网与WiFi协议
TCP-IP协议详解(3) IP/ARP/RIP/BGP协议
TCP-IP协议详解(4)IPv4与IPv6地址
TCP-IP协议详解(5)IP协议详解
TCP-IP协议详解(6) ICMP协议
TCP-IP协议详解(7) UDP协议
TCP-IP协议详解(8) TCP协议与流通信
TCP-IP协议详解(9) TCP连接
TCP-IP协议详解(10) TCP滑窗管理
TCP-IP协议详解(11) TCP重传
TCP-IP协议详解(12) TCP堵塞控制
TCP-IP协议详解(13) DNS协议
TCP-IP协议详解(14) CIDR与NAT
TCP-IP协议详解(15) HTTP协议概览
图解TCP-IP协议
TCP/IP协议特点
TCP/IP协议
最广泛支持的通信协议集合,包括大量Internet应用中的标准协议支持跨网络架构、跨操作系统平台的通信
逐级之间通信的三个要素
IP地址 子网掩码 IP路由
IP地址(IP address) 标识一台计算机
地址组成(点分十进制)
-32个二进制是表示为4个十进制数,以 . 隔开
IP地址分类 (127.0.0.1:永远代表本机地址)
-A类:1~127 网+主+主+主
-B类:128~191 网+网+主+主
-C类:192~223 网+网+网+主
-D类:224~239 组播
-E类:240~254 科研
配置IP地址 略
IP地址组成:网络位+主机位
-A类:1~127 网+主+主+主 1.1.1.1
-B类:128~191 网+网+主+主
-C类:192~223 网+网+网+主
网络位:相当于区号作用,标识一个区域(网络)
主机位:相当于区域中的编号
192.168.1.1 ————->开头为192可以判断为C类地址
C类:192~223 网+网+网+主 —————->192.168.1.1 网络中编号为1的计算机
网+网+网+主 —————->192.168.2.1 网络中编号为1的计算机
子网掩码:为计算机区分IP地址的网路位和主机位,利用二进制的1代表网络位利用二进制的0代表主机位
192.168.1.1
11000000.10101000.00000001.00000001
11111111.11111111.11111111.00000000——————255.255.255.0
IP地址表示
192.169.1.1 255.255.255.0
192.168.1.1 /24 有24个网络位
拓展:
DNS服务器:将用户在浏览器输入的域名,解析为对应的IP地址
www.qq.com————————192.168.1.1
网关设备:一般为路由器
网关地址:一个网络到另一个网络的关口(作用解决不同网络通信)
tcp/ip包括有关路由选择的协议吗
TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。它有以下特点:
(1)协议标准是完全开放的,并且独立于特定的计算机硬件与操作系统。
(2)独立于网络硬件系统,可以运行在广域网,更适合于互联网。
(3)网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。
(4)高层协议标准化,可以提供多种多样可靠网络服务。
扩展资料:
TCP/IP模型和协议的缺点:
(1)该模型没有明显地区分服务、接口和协议的概念。因此,对于使用新技术来设计新网络,TCP/IP模型不是一个太好的模板。
(2)TCP/IP模型完全不是通用的,并且不适合描述除TCP/IP模型之外的任何协议栈。
(3)链路层并不是通常意义上的一层。它是一个接口,处于网络层和数据链路层之间。接口和层间的区别是很重要的。
(4)TCP/IP模型不区分物理层和数据链路层。这两层完全不同,物理层必须处理铜缆、光纤和无线通信的传输特征;而数据链路层的工作是确定帧的开始和结束,并且按照所需的可靠程度把帧从一端发送到另一端。
参考资料:
百度百科——TCP/IP
有,负责路由TCPIP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCPIP协议。TCPIP协议(Transfer ControlnProtocolInternet Protocol)叫做传输控制网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。TCPIP是网络中使用的基本的通信协议。虽然从名字上看TCPIP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCPIP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
以上就是关于tcpip协议详解 tcpip协议具体包括哪些内容全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!