TCPip协议复习提纲1Word文档格式.docx
《TCPip协议复习提纲1Word文档格式.docx》由会员分享,可在线阅读,更多相关《TCPip协议复习提纲1Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
4、TCP的连接管理过程,其建立和释放连接的具体过程。
第9章应用层
1、顶级域名的种类,域名的解析过程。
2、FTP文件传送协议的工作过程。
3、邮件读取协议POP3和IMAP的特点。
4、通用因特网邮件扩充MIME协议与SMTP协议的不同。
第17章标准TCP/IP编程接口
1、基于UDP的socket编程。
2、基于TCP的socket编程。
第1章网络相关概述
网络互连是指网络在物理上的连接,两个网络之间至少有一条在物理上连接的线路,它为两个网络的数据交换提供了物资基础和可能性。
网络互联是指网络在物理和逻辑上,尤其是逻辑上的连接。
互连指小范围的连接客观的互连,互联是一个抽象概念大范围的不具体的联系
①Internet协会(ISOC):
确保全球Internet发展的有利性和开放性,并通过领导标准、议题和培训工作来发展互联网络酌相关技术。
②IAB(Internet体系结构委员会):
制定Internet的技术标准;
通过网络发布Internet工作文件;
规划Internet发展战略;
就技术问题进行国际协调。
③Internet草案与RFC:
Internet技术管理的核心是制定网络连接和应用的协议标准。
④InterNIC与域名管理:
负责所有以.org、com、net、edu结尾的国际顶级域名的注册与管理(.mil、gov由美国政府管理)各国的顶级域名由各国自己管理。
⑤IAB下属工作组:
工程任务组(IETF),技术研究组(IRTF),许可证管理组Internet编号组:
欧洲地区,亚太地区,其它地区。
⑥WWW协会(W3C):
确定和颁布有关WWW的应用标准。
⑦中国互连网络信息中心(CNNIC):
1)注册服务(包括:
域名注册、IP地址分配、自治系统号分配等);
2)目录数据库服务;
3)信息服务;
4)网站访问流量认证;
5)代表我国与InterNIC、APNIC(亚太互连网络信息中心)等国际机构进行业务联系。
⑧NOC和NIC:
Internet网络中心的日常管理
应用层:
提供TCP/IP应用协议以及应用程序编程接口(API)
协议【文件传输协议(FTP),远程登录协议(Telnet)等】
传输层:
负责主机到主机间的端对端的通信
协议【传输控制协议(TCP),用户数据报协议(UDP)】
网络层:
寻址和地址转换
协议【网际协议(IP),地址解析协议(ARP),网际控制报文协议(ICMP),网际组管理协议(IGMP)】
网络接口层:
与各种网络接口,物理硬件连接使用
①屏蔽各个物理网络的差异,使用户感觉起来是一个统一的网络;
②提供主机间不可靠、无连接、尽最大努力的数据报交付服务;
③规定了互联网上传输数据的确切格式。
A类:
由地址类别标识、netid和hostid组成,能表示的网络少,但单个网络中的主机或设备可以很多
B类:
由地址类别标识、netid和hostid组成,各项都适中
C类:
由地址类别标识、netid和hostid组成,能表示的网络多,但单个网络中的主机和设备较少
D类:
多播地址
E类:
保留为今后使用
①确定所需子网的数目
②确定每个子网的最大主机数目
③定义一个能满足上述要求的子网掩码
④确定每个子网的网络ID
⑤确定每个子网上所能使用的主机ID范围
它将子网标识的两个部分netid和subnetid合并到一起,不加以区分,且对子网标识的长度不做限制。
CIDR技术可通过设置网络部分的长度来获得各种规模的地址范围,从而使IP地址得到了更加有效的利用。
CIDR将网络前缀都相同的连续的IP地址组成“CIDR地址块”。
例:
128.14.32.0/20表示的地址块共有212个地址(因为斜线后面的20是网络前缀的比特数,所以主机号的比特数是12)。
*这个地址块的起始地址是128.14.32.0。
*在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20地址块”。
*128.14.32.0/20地址块的最小地址:
128.14.32.0
*128.14.32.0/20地址块的最大地址:
128.14.47.255
*全0和全1的主机号地址一般不使用。
①固定部分20字节:
版本:
占4bit,指IP协议的版本,目前的IP协议版本号为4(即IPv4)
首部长度:
占4bit,可表示的最大数值,是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。
服务类型:
占8bit,用来获得更好的服务,这个字段以前一直没有被人们使用。
总长度:
占16bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。
总长度必须不超过最大传送单元MTU。
标识(identification):
占16bit,它是一个计数器,用来产生数据报的标识。
标志(Flag):
占3bit,前2位没有用,后一位为1表示后面还有分片,否则没有。
片偏移:
占12bit,指出,较长的分组在分片后,某片在原分组中的相对位置。
片偏移以8个字节为偏移单位。
生存时间:
占8bit,记为TTL(TimeToLive),数据报在网络中的寿命,其单位为秒。
协议:
占8bit字段,指出,此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程。
首部检验和:
占16bit字段,只检验数据报的首部,不包括数据部分。
这里不采用CRC检验码而采用简单的计算方法。
源地址:
占4字节。
目的地址:
②可变部分:
可选字段:
长度可变。
发送方检验和都是0然后ip首部字段反码算术运算求和结果取反放入检验和字段中;
接收方将该首部字段反码算术运算求和结果取反(16bit)若结果为0,则保留,否则就丢弃该数据报。
如上图实例,主机H1要发送分组给H2,要发送的分组的目的IP地址:
128.30.33.138,因此H1首先检查主机128.30.33.138是否连接在本网络上。
如果是,则直接交付;
否则,就送交路由器R1,并逐项查找路由表。
主机H1首先将本子网的子网掩码255.255.255.12
与分组的IP地址128.30.33.138逐比特相“与”(AND操作)。
得出128.30.33.128,不等于H1的网络地址。
因此H1必须把分组传送到路由器R1,然后逐项查找路由表。
路由器R1收到分组后就用路由表中第1个项目的子网掩码和128.30.33.138逐比特AND操作。
可知,与路由表中第二个路由条目一致,这表明子网2就是收到的分组所要寻找的目的网络。
由此,便可进行路由转发。
在划分子网的情况下路由器转发分组的算法:
(1)从收到的分组的首部提取目的IP地址D。
(2)先用各网络的子网掩码和D逐比特相“与”,看是否和相应的网络地址匹配。
若匹配,则将分组直接交付。
否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;
否则,执行(4)。
(4)对路由表中的每一行的子网掩码和D逐比特相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;
否则,执行(5)。
(5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;
否则,执行(6)。
(6)报告转发分组出错。
网络A和网络B均为以太网,MTU=1500
网络C连接网络A、B,MTU=720
网络A中主机H1发送数据长度为1500B的IP数据给网络B中的H2主机。
1)传播选路信息的经典算法。
选路表中列出所有已知的路由。
2)路由器启动时对选路表初始化,生成表项。
每项指出一个目的网络,给出相应的距离
3)相邻路由器周期性地交换自己的选路表信息。
以此进行更新。
4)路由器之间通告的是(V,D)序偶。
其中V标识目的站,D标识到该目的站的距离。
更新原则:
如:
路由器J告诉路由器K自己的选路表信息。
1)J知道去每个目的站的更短路径,更新
2)J列出了K不知道的目的站,更新
3)K目前到某个目的站的路由经过J而J到该目的站的距离有所改变,更新
ARP协议的作用:
ARP是一个基础协议,但是它的运行对于应用程序或系统管理员来说一般是透明的。
它利用以太网的广播功能,使用询问/回答机制。
ARP允许主机在只知道同一物理网络上一个目的站IP地址的情况下,找到目的主机的物理地址。
工作原理:
1.查找高速ARP缓存;
2.ARP请求被发送;
3.ARP被加入;
4.ARP答复被发送;
5.ARP被加入;
6.IP包被发送
高速缓存的作用:
1.为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。
2.当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。
这对主机B以后向A发送数据报时就更方便了。
3.为减少广播,每台主机都维护一个ARP高速缓存:
存放最近使用过的IP--物理地址映射,并动态更新。
一般由于数据发送是多次的,因而这样能减少ARP广播的次数。
4.同时一般在收到数据后需要回复,因而目的主机要更新或记下源主机在ARP数据包中携带的IP和物理地址对。
作用:
由物理地址映射到IP地址。
实际上是一个物理层协议,只在同一物理网络中适用。
典型的应用:
无盘工作站(无二级存储器,工作数据都存储在远端文件服务器,因而不能预先在本机指定IP地址)通过网卡连接到网络,要连接远端文件服务器,就需要一个IP地址。
工作过程:
(1.主机在启动时广播一个RARP消息,指定本机的硬件地址为源、目的主机硬件地址。
(2.网络上只有一种主机能对此请求响应,即RARP服务器,RARP服务器维护一个物理地址--IP地址的映射表,在收到RARP消息后,填写IP地址,发出RARP响应消息。
(3.源主机收到后就可以获得一个IP地址,从而能使用TCP/IP协议连接到文件服务器。
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
ICMP报文的前4个字节是统一的格式,共有三个字段:
即类型、代码和检验和。
接着的4个字节的内容与ICMP的类型有关。
1.终点不可达;
2.源站抑制;
3.时间超过;
4参数问题;
5.改变路由(重定向)
IP多播的一些特点
(1)多播使用组地址——IP使用D类地址支持多播。
多播地址只能用于目的地址,而不能用于源地址。
(2)永久组地址——由因特网号码指派管理局IANA负责指派。
(3)动态的组成员
(4)使用硬件进行多播
基本首部各字段:
版本(version):
4bit。
它指明了协议的版本,对IPv6该字段总是6。
通信量类(trafficclass):
8bit。
这是为了区分不同的IPv6数据报的类别或优先级。
目前正在进行不同的通信量类性能的实验。
流标号:
20bit。
“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。
所有属于同一个流的数据报都具有同样的流标号。
有效载荷长度:
16bit。
它指明IPv6数据报除基本首部以外的字节数,最大值是64KB。
下一个首部:
它相当于IPv4的协议字段或可选字段。
跳数限制:
源站在数据报发出时即设定跳数限制。
路由器在转发数据报时将跳数限制字段中的值减1。
当跳数限制的值为零时,就要将此数据报丢弃。
源地址:
128bit。
是数据报的发送站的IP地址。
128bit。
是数据报的接收站的IP地址。
向IPv6过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6系统能够向后兼容。
IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。
双协议栈(dualstack)是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有两个协议栈,一个IPv4和一个IPv6。
使用隧道技术从IPv4到IPv6过渡
广播分为定向广播,非限制性广播。
都是将广播信息发送到某一网络中所有的主机。
UDP检验和的基本计算方法与IP首部检验和计算方法相类似(16b字的二进制反码和),但是它们之间存在不同的地方。
首先,UDP数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。
解决方法是必要时在最后增加填充字节0,这只是为了检验和的计算(也就是说,可能增加的填充字节不被传送)。
其次,UDP数据报包含一个12字节长的伪首部,它是为了计算检验和而设置的。
伪首部包含IP首部一些字段。
其目的是让UDP两次检查数据是否已经正确到达目的地。
如果检验和的计算结果为0,则存入的值为全1,这在二进制反码计算中是等效的。
如果传送的检验和为0,说明发送端没有计算检验和。
1)面向字节流:
应用进程间发送的数据被看作是一个个字节组成的数据流,给每个字节编一个序号。
2)确认机制:
要求接收端与发送端进行通信。
在收到数据后要发回一个确认(ACK)消息,而源端也只有在收到接收端的确
认消息后在发送下一个数据。
3)超时重传:
使用自适应重传算法来检测各个连接的时延,并调整相应的参数。
4)滑动窗口
5)拥塞控制:
加速递减+慢启动+拥塞避免
6)流量控制:
接收方的确认信息中包括一个窗口通告,根据窗口通告改变发送窗口的大小。
实现方法:
1)加速递减一旦发现丢失报文段,立即就将拥塞窗口一半作为门限窗口,然后拥塞窗口大小变为1。
2)慢启动在启动新连接的传输或在拥塞之后增加通信量时,仅以一个报文段作为拥塞窗口的初始值,而每当收到一个确认之后,将拥塞窗口大小加1。
以后以二的指数规律增加。
3)拥塞避免是指当拥塞窗口到达门限窗口时,就将拥塞窗口指数增长速率降低为线性增长速率,避免网络再次出现拥塞。
•源端口号和目的端口号:
标识接收端和发送端的应用进程。
•序号:
所发送的数据的第一字节的序号,用以标识从TCP发端向TCP收端发送的数据字节流,序号计数达power(2,32)-1后再回到零从新开始。
•确认序号:
期望收到的下一个消息第一字节的序号。
为确认的一端所期望接收的下一个序号。
•首部长度:
以32比特为计算单位。
•窗口大小:
滑动窗口协议中的窗口大小
•检校和:
对整个TCP首部和TCP数据部分的校验。
这个字段在TCP中是强制性的,一定由发端计算,并在收端进行验证。
•标识位有六个标识:
(以下为设置为1时的意义,为0时相反)
•紧急位(URG):
紧急指针有效,紧急指针是一个正的偏移量,指出本报文段中的紧急数据的最后一个字节的序号。
•确认位(ACK):
表示确认序号字段有意义
•急迫位(PSH):
表示请求接收端的传输实体尽快交付应用层
•重建位(RST):
表示出现严重差错,必须释放连接重建
•同步位(SYN):
SYN=1,ACK=0表示连接请求消息
•SYN=1,ACK=1表示同意建立连接消息
•终止位(FIN):
表示数据已发送完,要求释放连接
管理过程:
连接建立,数据传输和连接释放。
1)建立TCP连接:
三次握手
第一步:
发起方发送一个消息,其SYN位被设置;
第二步:
响应方收到消息后,发回一个消息,SYN和ACK位均被设置,表示可以继续;
第三步:
确认响应,ACK位被设置,表示双方均同意连接,连接建立。
2)释放TCP连接:
修改的三次握手
TCP是全双工的,一个连接具有两个方向的数据传输,因此连接释放需要分别释放两个方向。
当一方的应用程序通知TCP已无数据需要发送时,TCP关闭此方向的连接,这时此方向只能接收对方的数据,而不能发送其它数据了(除了释放连接的消息)。
然后发送一个FIN位被设置的消息通知接收方没有数据发送。
接收方响应确认。
同时,接收方通知应用程序释放连接,发送回连接释放消息,最终释放整个连接。
种类:
(1)国家顶级域名nTLD:
如:
.cn表示中国,.us表示美国,.uk表示英国,等等。
(2)通用顶级域名gTLD:
最早的顶级域名是:
.com(公司和企业)
.net(网络服务机构)
.org(非赢利性组织)
.edu(美国专用的教育机构()
.gov(美国专用的政府部门)
.mil(美国专用的军事部门)
.int(国际组织)
(3)基础结构域名(infrastructuredomain):
这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
域名解析过程:
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域的主域名服务器的地址。
第四步:
本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:
重复第四步,直到找到正确的纪录。
第六步:
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
赞同
⏹打开熟知端口(端口号为21),使客户进程能够连接上。
⏹等待客户进程发出连接请求。
⏹启动从属进程来处理客户进程发来的请求。
从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
⏹回到等待状态,继续接受其他客户进程发来的请求。
主进程与从属进程的处理是并发地进行。
⏹邮局协议POP3是一个非常简单、但功能有限的邮件读取协议。
⏹POP3也使用客户服务器的工作方式。
⏹在接收邮件的用户PC机中必须运行POP客户程序,而在用户所连接的ISP的邮件服务器中则运行POP服务器程序。
⏹IMAP最大的好处是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
⏹IMAP还允许收件人只读取邮件中的某一个部分。
⏹IMAP的缺点是如果用户没有将邮件复制到自己的PC机上,则邮件一直是存放在IMAP服务器上。
因此用户需要经常与IMAP服务器建立连接。
⏹SMTP不能传送可执行文件或其他的二进制对象。
⏹SMTP限于传送7位的ASCII码。
⏹SMTP服务器会拒绝超过一定长度的邮件。
⏹某些SMTP的实现并没有完全按照[RFC821]的SMTP标准。
⏹MIME并没有改动SMTP或取代它。
⏹MIME的意图是继续使用目前的[RFC822]格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。
第17章标准TCP/IP编程接口
1.基于UDP的socket编程
服务器端(接收端)程序:
1、创建套接字(socket)
2、将socket绑定到一个本地IP地址和端口上(bind)
3、等待接收数据(recvfrom)
4、关闭socket(closesocket)
客户端(发送端)程序:
2、向服务器发送数据(sendto)
3、关闭socket(closesocket)
2.基于TCP的socket编程
服务器端程序:
3、将socket设为监听模式,准备接收客户请求(listen)
4、等待客户请求到来:
当请求到来后,接收连接请求,返