【计算机网络】TCP/IP

一、基本概念

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTPSMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

二、组成

TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次。

(1)应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次;

(2)由于传输层和网络层在网络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次;

(3)因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在网络接口层里。

只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。

1、应用层

应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层。主要协议有HTTPDNSFTPSMTPPOPTelnet

1.1 DNS

DNS(Domain Name System 域名系统)作用是将域名解析成对应的IP地址。

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。

当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS查询有两种方式:递归和迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。

以查询www.baidu.com为例:
客户端发送查询报文"query www.baidu.com"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
如果记录老化或不存在,则:

  1. DNS服务器向根域名服务器发送查询报文"query www.baidu.com",根域名服务器返回顶级域.com的域名服务器地址。
  2. DNS服务器向.com域的域名服务器发送查询报文"query www.baidu.com",得到二级域.baidu.com的域名服务器地址。
  3. DNS服务器向.baidu.com域的域名服务器发送查询报文"query www.baidu.com",得到主机www的记录,存入自身缓存并返回给客户端。

1.2 FTP

FTP(File Transfer Protocol 文件传输协议)是用于在网络上进行文件传输的标准协议,工作在OSI模型的第七层, TCP模型的第四层, 即应用层, 使用 TCP 传输, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。FTP允许用户以文件操作的方式(如文件的增删改查传送等)与另一主机相互通信。

它在两台通信的主机之间使用了两条 TCP 连接,分别用于数据传送与控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序一般只有一条 TCP 连接。

客户有三个构件:用户接口、客户控制进程和客户数据传送进程。服务器有两个构件:服务器控制进程和服务器数据传送进程。在整个交互的 FTP 会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。

2、传输层

传输层主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有有复用和分用功能。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能,主要协议有TCP、UDP。

2.1TCP

UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。

2.2 UDP

TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

3、网络层

网络层实现数据包的选路和转发。通信的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。主要协议有IPARPRARPICMP

3.1 IP

IP(Internet Protocol 网际协议),负责Internet上网络之间的通信,并规定了将数据报从一个网络传输到另一个网络所应遵循的规则。IP协议不但定义了数据传输时的基本单元和格式,还定义了数据报的递交方法和路由选择。此外,在TCP/IP网络中,主机之间进行通信所必需的地址,也是通过IP协议来实现的。

3.2 ARP

ARP(Address Resolution Protocol 地址解析协议),根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

工作原理:

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  1. 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址;
  2. 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求;
  3. 主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中;
  4. 主机B将包含其MAC地址的ARP回复消息直接发送回主机A;
  5. 当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

3.3 ICMP

ICMP(Internet Control Message Protocol Internet控制报文协议)用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。

从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件。

其功能主要有:侦测远端主机是否存在,建立及维护路由资料,重导资料传送路径(ICMP重定向),资料流量控制,ICMP在沟通之中,主要是透过不同的Type与Code让机器来识别不同的连线状况。

TYPE CODE Description Query Error
0 0 Echo Reply——回显应答(Ping应答) x  
3 0 Network Unreachable——网络不可达   x
3 1 Host Unreachable——主机不可达   x
3 2 Protocol Unreachable——协议不可达   x
3 3 Port Unreachable——端口不可达   x
3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特   x
3 5 Source routing failed——源站选路失败   x
3 6 Destination network unknown——目的网络未知   x
3 7 Destination host unknown——目的主机未知   x
3 8 Source host isolated (obsolete)——源主机被隔离(作废不用)   x
3 9 Destination network administratively prohibited——目的网络被强制禁止   x
3 10 Destination host administratively prohibited——目的主机被强制禁止   x
3 11 Network unreachable for TOS——由于服务类型TOS,网络不可达   x
3 12 Host unreachable for TOS——由于服务类型TOS,主机不可达   x
3 13 Communication administratively prohibited by filtering——由于过滤,通信被强制禁止   x
3 14 Host precedence violation——主机越权   x
3 15 Precedence cutoff in effect——优先中止生效   x
4 0 Source quench——源端被关闭(基本流控制)    
5 0 Redirect for network——对网络重定向    
5 1 Redirect for host——对主机重定向    
5 2 Redirect for TOS and network——对服务类型和网络重定向    
5 3 Redirect for TOS and host——对服务类型和主机重定向    
8 0 Echo request——回显请求(Ping请求) x  
9 0 Router advertisement——路由器通告    
10 0 Route solicitation——路由器请求    
11 0 TTL equals 0 during transit——传输期间生存时间为0   x
11 1 TTL equals 0 during reassembly——在数据报组装期间生存时间为0   x
12 0 IP header bad (catchall error)——坏的IP首部(包括各种差错)   x
12 1 Required options missing——缺少必需的选项   x
13 0 Timestamp request (obsolete)——时间戳请求(作废不用) x  
14   Timestamp reply (obsolete)——时间戳应答(作废不用) x  
15 0 Information request (obsolete)——信息请求(作废不用) x  
16 0 Information reply (obsolete)——信息应答(作废不用) x  
17 0 Address mask request——地址掩码请求 x  
18 0 Address mask reply——地址掩码应答    

4、网络接口层

网络接口层是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。这将完成如添加报头准备发送、通过物理媒介实际发送这样一些数据链路功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。

原文地址:https://www.cnblogs.com/6970-9192/p/11545547.html

时间: 2024-07-29 14:00:20

【计算机网络】TCP/IP的相关文章

计算机网络——TCP/IP协议族详解

一.OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI. TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的

WIZnet启动线下培训活动:计算机网络TCP/IP协议及其实现方法

为了给大家营造更好的学习环境,WIZnet特此举办第一期培训活动,由WIZnet一线工程师为你分享最最前沿和实用的网络技术知识,帮你解答开发过程中的疑问,欢迎前来交流!名额有限(20名满),抓紧报名吧! 面向对象:一线攻城狮,在校学生,创客等,需具备单片机编程能力- 本期内容:TCP/IP网络协议及其实现方法 准备物品:笔记本电脑 + W5500开发板(暂时借用也可) 培训地点:北京市朝阳区霄云路38号现代汽车大厦22层i108室(地铁十号线亮马桥B口出500M) 培训时间:2014年10月25

计算机网络 0.初识Internet与TCP/IP协议

互联网,即因特网,Internet.互联网是一个世界范围的计算机网络.连接了世界上无数的计算设备,这些计算设备为PC,基于Linux的工作站,服务器servers等等.这些设备根据其作用不同可以被称为主机host或者端系统end system. 端系统通过通信链路communication link和分组交换机packet switch连接到一起.发送数据时,发送端系统将数据分段,并为每段加上首部字节.这样的形成的信息包称为分组packet.分组到达目标端系统后,被装配成初始数据.分组交换机从它

TCP/IP(一)之初识计算机网络

前言 在一段时间里,都很想知道一台电脑怎么跟另一台电脑通信的,我发送一个qq给女朋友,怎么准确的发送过去的,又是怎么接受消息的. 接下来一段时间给大家慢慢分享关于计算机网络的相关知识. 一.局域网.广域网和Internet 1.1.局域网 1)概述 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组.一般是方圆几千米以内.局域网可以实现 文件管理.应用软件共享.打印机共享.工作组内的日程安排.电子邮件和传真通信服务等功能.局域网是封闭型的,可以由办

计算机网络基础与TCP/IP

计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链路层 TCP/IP详解学习笔记(3)-- IP:网际协议 TCP/IP详解学习笔记(4)-- ARP 和 RARP TCP/IP详解学习笔记(5)-- ICMP:internet 控制报文协议 TCP/IP详解学习笔记(6)-- IP选路 TCP/IP详解学习笔记(7)-- 初识运输层 TCP/IP

计算机网络 OSI参考模型与TCP/IP分层模型

TCP/IP是当今计算机网络界使用最为广泛的协议. OSI与TCP/IP参考模型如下: OSI参考模型注重"通信协议必要的功能是什么",而TCP/IP更强调"如何实现协议". 参考资料 <图解TCP/IP 第5版> P64 原文地址:https://www.cnblogs.com/WJQ2017/p/8270532.html

计算机网络【1】—— OSI七层协议和TCP/IP四层协议

新开一贴,专门用来记录计算机网络相关知识. 一.OSI七层协议 物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 二.TCP/IP四层协议 网络接口层.网际层.运输层.应用层 三.五层协议 物理层.数据链路层.网络层.运输层.应用层 四.每层对应的协议及作用 物理层:RJ45.CLOCK.IEEE802.3 (中继器,集线器) 数据链路:PPP.FR.HDLC.VLAN.MAC (网桥,交换机) 网络层:IP.ICMP.ARP.RARP.OSPF.IPX.RIP.IGRP. (路由器)

TCP/IP 协议图--计算机网络体系结构分层

计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重"通信协议必要的功能是什么",而 TCP/IP 则更强调"在计算机上实现协议应该开发哪种程序" 原文地址:https://www.cnblogs.com/tutougold/p/11722841.html

2.1.5 计算机网络协议: TCP/IP

应用程序阶段:妳打开浏览器,在浏览器上面输入网址列,按下 [Enter].此时网址列与相关数据会被浏览器包成一个数据, 并向下传给 TCP/IP 的应用层: 应用层:由应用层提供的 HTTP 通讯协议,将来自浏览器的数据报起来,并给予一个应用层表头,再向传送层丢去: 传送层:由于 HTTP 为可靠联机,因此将该数据丢入 TCP 封包内,并给予一个 TCP 封包的表头,向网络层丢去: 网络层:将 TCP 包裹包进 IP 封包内,再给予一个 IP 表头 (主要就是来源与目标的 IP 啰),向链结层丢

TCP/IP 计算机网络协议

应用层: (典型设备:应用程序,如FTP,SMTP ,HTTP) DHCP(Dynamic Host Configuration Protocol)动态主机分配协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段.实 现即插即用连网. BOOTP (BOOTstrapProtocol) 引导程序协议/ 自举协议,使用UDP 来使 一个无盘工作站自动获取配置信息.静态的配置协议 DNS (Domain