TCP/IP 协议 4.3
网友对哈士奇的评价:
一.TCP/IP协议
1.TCP/IP协议是Internet最基本的协议,主要由传输层的TCP协议和网络层的IP协议构成,TCP(Transmisson Control Protocol,传输控 制协议)保证被传输数据的完整性;IP(Internet Protocol,网际互联协议)负责将信息从一个地方传送到另一个地方。
2.TCP/IP协议族包括很多协议:TCP/IP协议和相关的其他子协议共同组成的一个集合。
计算机网络知识点的回顾可以按照上图。
3.应用层协议:
(1)文件传输类:HTTP、FTP、TFTP;
<1>HTTP (超文本传送协议,hypertext transfer protocol):超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的 应用层协议,以实现超链接的功能。
超文本包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。
URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL由协议、主机和端口(默 认为80)以及文件名三部分构成。如:
HTTP的工作原理:用户点击URL(浏览器分析域名,浏览器请求DNS解析域名为IP地址,DNS将IP地址返回给浏览器)-->浏览器与服务器建立tcp连接-->浏览器请求数据-->服务器将数据返回给浏览器-->断开tcp连接。
其中建立的tcp连接有非持久性的连接、持久性的连接、无状态的连接(不记忆之前是否连接)。
请求报文:从客户端(浏览器)向服务器发送的请求报文。
关于报文的具体解释:方法、首部字段或消息头、报文结构
方法:对操作对象的命令
首部字段或消息头:
根据HTTP的工作原理:如果每次客户端请求数据都要从源服务器获取,这样既增加了源服务器的负担,同时不利于快速传输数据。因此如果能够将用户之前请求的数据暂存,用户再次请求数据时,暂存的数据可以直接获取,不用再次请求源服务器,这就提出了HTTP代理服务器的概念,代理服务器请求源服务器数据,暂存数据,客户端(浏览器)可以直接从代理服务器获取已暂存的数据。
<2> FTP(文件传输协议,File Transfer Protocol)
FTP可以传送4种文件:ASCII码文件、EBCDIC码文件、图像(Image)文件、本地文件(Local)
FTP有两种工作模式:主动模式(PORT)和被动模式(PASV)
主动模式:
被动模式(PASV):用户主机前端多了一道防火墙(客户机使用地址转换接入互联网)
(2)远程登录类:Telnet:
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
(3)电子邮件类:SMTP/IMAP/POP3;
电子邮件系统由3部分构成:
(4)域名解析类:DNS;(工作原理)
为了使用和记忆方便,因特网还采用了域名管理系统,简称DNS(Domain Name System)
DNS的作用:树状分层结构组织管理计算机;查找名字与地址之间的对应关系
DNS的特点:树形结构;Client/Server工作方式;一个Domain一般是一个工作站群,可有一个主域名服务器及若干辅域名服 务器;应用层协议是标准TCP/IP协议的一个组成部分。
域名是有层次的。Internet主机域名的一般格式为:四级域名.三级域名.二级域 名.顶级域名(并不一定分四级)如:www.sina.com.cn。
地理模式:
组织模式:
DNS的组成:域名空间(Name Space)和资源记录(Resource Record)
域名服务器(Name Server):用以提供域名空间结构及信息的服务器程序。
解析器(Resolver):作用是应客户程序的要求从域名服务器抽取信息。
域名空间:域名空间的每一个节点包含一系列的资源信息:一条资源记录共有5项,分别是域名(Domain_name)、生存时间(Time_to_live)、类型(Type)、 类别(Class)和 值(Value)
域名服务器(NameServer) :用以提供域名空间结构及信息的服务器程序,LINUX默认是BIND,提供域名解析服务
解析器(Resolver):作用是应客户程序的要求从名字服务器抽取信息。
DNS工作原理图:
(5)网络管理类:SNMP(简单网络管理协议)
SNMP通信协议:主要是管理程序和代理程序之间通信,共有五类消息:GetRequest,GetNextRequest,GetResponse, SetRequest,Trap,其模型如下。
4.传输层协议:TCP和UDP
<1>UDP(User Datagram Protocol,用户数据报协议)是面向无连接的,即在进行数据传输之前不需要建立连接,而目的 主机收到数据报后也不需要发回确认。这种协议提供了一种高效的传输服务。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的,即在进行数据传输之前需要先建立连接,而且目 的主机收到数据报后要发回确认信息。这种协议提供了一种可靠的传输服务。
TCP/IP传输层可以通过协议端口(protocol port,简称端口)来标识通信的应用进程。例如: HTTP 80 DHCP 67、68
<2>端口:
网络互连层的IP协议将数据传送到传输层后,传输协议要将数据传递给正确的应用进程,为了识别是哪一个进程,就需要使用端口号。
动态端口(DynamicPorts)
动态端口的范围是从1024到65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。动态分配是指当一个系统进程或应用程序进程需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。当这个进程关闭时,同时也就释放了所占用的端口号= {(IP1: port1), (IP2: port2)}
每一条TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。
<4>TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
TCP的特点:
(1)通信是全双工方式。
(2)发送方的应用进程按照自己产生数据的规律,不断地把数据块陆续写入到TCP 的发送缓存中。TCP 再从发送缓存中取 出一定数量的数据,将其组成 TCP 报文段(segment)逐个传送给 IP 层,然后发送出去。
(3)接收方从IP 层收到 TCP 报文段后,先把它暂存在接收缓存中,然后让接收方的应用进程从接收缓存中将数据块逐个读取。
(4)由于运输层的通信是面向连接的,因此TCP 每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。
TCP连接建立过程:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。
四次挥手过程:
<6>TCP的数据报文:
源端口和目的端口字段各占2字节。标识了发送方和接收方的应用进程。
序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据 的第一个字节的序号。
确认号字段占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移占 4 bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。
保留字段占 6 bit,保留为今后使用,但目前应置为 0。
紧急比特URG,当URG= 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
确认比特 ACK ,只有当 ACK= 1 时确认号字段才有效。当 ACK= 0 时,确认号无效。
推送比特 PSH (PuSH),接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。
复位比特 RST (ReSeT),当 RST = 1 时,表明 TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,通知一下对方。
同步比特 SYN,同步比特 SYN置为1,就表示这是一个连接请求或连接接受报文。
终止比特 FIN (FINal),用来释放一个连接。当FIN= 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
窗口字段,占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
检验和,占 2字节。检验和字段检验的范围包括首部和数据和伪段头(不是TCP里的信息,但是计算校验和的时候也计算了的内容:IP地址,TCP数据段长度,协议类型)。
紧急指针字段 占 16bit。紧急指针指出在本报文段中的紧急数据的位置。
选项(长度可变),TCP规定了二种选项,最大报文段长度MSS(Maximum Segment Size)。和窗口扩大因子,用于扩大接收方窗口
填充字段,这是为了使整个首部长度是 4字节的整数倍。