图解TCP/IP——笔记

 第一章   网络基础知识

协议就是计算机之间通过网络实现通信时事先达成的一种约定。遵循相同协议才能实现通信。从物理连接层到软件层面都必须遵循。

 

分组交换是指将大数据分割为一个个较小单位的包进行传输的方法。

通信协议中通常规定报文首部应该写人哪些信息如何处理这些信息,如何构造和读取首部内容。双方必须保持一致。

 

协议分层,每层都接受下一层的服务并且负责为上一层提供服务。上下层间交换约定叫做接口,同层之间的约定叫协议。

分层可以将每个层独立使用,易于实现每个分层。

OSI参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。会话层负责建立和断开连接的时机,数据分割的管理,传输层建立连接,网络层寻址、路由和分组。

 

网络层不保证可靠传输。

 

网络层负责发送的最终目标,数据链路层只负责发送一个分段内地数据。

 

 

第二章   TCP/IP基础知识

TCP/IP是利用IP进行通信时所必须的协议群的统称。

 

TCP/IP分层:应用层、传输层、网络层、网络接口层、物理层。

tcpdump工具抓取数据是网络接口层的,如果同一IP地址的应用程序间通信只到IP层,是抓不到的。

 

数据包首部,每个分层都会对数据附加一个首部。首部标识了协议如何读取数据。首部由协议明确规定,就如同看到协议。首部至少包含两个信息,发送端和接收端地址及上一层协议类型。

 

 

第四章 IP协议

网络层的主要作用是实现终端节点之间的通信即点对点通信。数据链路层主要作用是在互连同一种数据链路的节点间进行包传递,网络层可以跨越不同数据链路。数据链路层提供直连设备间的通信,网络层则负责在没有直连的网络之间进行通信。

 

IP协议三个功能模块是定址寻址、路由、分包组包。

IP面向无连接,发包前不需要建立连接。IP只负责发数据,不保证可靠性。

 

IP地址由网络标识(网络地址)和主机标识(主机地址)组成。网络标识必须保证相互连接的每个段地址不重复,而相同段内相连的主机必须有相同的网络地址。主机标识则不允许在同一个网段内重复。

路由是利用目标IP的网络标识进行的。

子网掩码用来区分网络标识和主机标识。

IP地址分为四个级别,根据IP地址中第一位到第四位对网络标识和主机标识进行区分:

A类地址,首位以0开头,前8位是网络标识,0.0.0.0~127.0.0.0网络地址

B类地址,前两位为10,前16位是网络标识,128.0.0.0~191.255.0.0网络地址

C类地址,前三位是110,前24位是网络标识,192.0.0.0~239.255.255.0网络地址

D类地址,前四位是1110,32位网络标识,224.0.0..0~239.255.255.255网络地址,没有主机标识,常用于多播。

主机地址不可全部为0或全部为1,全0表示对应网络地址或IP地址不可获知时使用,全1为广播地址。在本网络内广播为本地广播,不同网络之间广播叫直接广播。

 

路由控制表。IP地址的网络地址部分用于进行路由控制。路由控制表记录着网络地址与下一步应该发送至路由器的地址。发生IP包时先确定IP包首部中的目标地址,在从路由控制表中找到与该地址具有相同网络地址的记录,根据记录将IP包发送给相应的下一个路由器。

 

IPv4首部,最小20个字节,包括版本(4bit)、首部长度(4bit,单位为4字节)、服务类型(1字节,表明服务质量,几乎没有用)、总长度(2字节)、标识(2字节,用于分片重组,同一个分片的标识值相同)、标志(3bit)、片偏移(13bit)、生存时间(1字节,实际中指可以中转多少个路由器,每经一个路由减一,0则丢弃该包)、协议(1字节,标识下一个首部属于哪个协议如TCP),首部检验和(2字节,只校验首部)、源地址(4字节)、目标地址(4字节)。

IPv6省略了首部校验和,分片处理所用的识别码成为可选项,IPv6的首部及可选项都由8字节构成。

 

 

第五章 IP协议相关技术

DNS域名解析系统有效管理主机名和IP地址对应关系。域名有分层。解析器向域名服务器查询对于IP地址,域名服务器先在本地查询,有则返回IP地址,没有则向上一层域名服务器查询直到找到对应IP,返回并缓存在自己本地。

 

ARP地址解析协议,以目标IP地址定位下一个网络设备的MAC地址,如果目标主机不在同一个链路,可以通过ARP查找下一跳路由器的MAC地址。ARP只适用于IPv4,IPv6中可以用ICMPv6替代ARP发送邻居探索消息。主机A为获取主机B的MAC地址,先广播一个ARP请求包,其中含有想要了解其MAC地址的IP地址。所有网络设备都接收并解析。如果请求包中的IP地址和自己的一致,该节点就将自己的MAC地址塞入ARP响应包中返回给主机A。

 

ICMP(Internet Control Message Protocol)主要功能包括确认IP包是否成功送达,通知发送过程中IP包被废弃的具体原因,改善网络设置等。ICMP通知IP包未能送达的具体原因,是使用IP进行发送到的。ICMP消息分为两类:通知出错原因的错误消息,用于诊断的查询消息。Ping命令就是利用ICMP回送消息实现的。ICMPv6中的邻居探索消息替代了ARP。

 

DHCP(Dynamic Host Configuration Protocol)是为了实现自动设置IP地址,统一管理IP地址分配。

 

NAT(Network Address Translator)用于在本地网络使用私有地址,在连接互联网时使用全局IP地址的技术。还有可以转换TCP、UDP端口号的NAPT,实现一个全局地址与多个主机通信。在NAT路由器内有一张自动生成的用来转换地址的表,第一次发包时建立映射。多台主机同时与外部通信时,则包含端口号一起转换。不同主机被映射为同一地址但不同端口号。建立TCP连接首次握手时SYN一经发出就生成这个表,关闭连接时发出FIN应答并从表中删除。

 

 

第6章 TCP与UDP

TCP提供可靠的通信传输,UDP常用于广播和细节控制交给应用的通信传输。

IP首部中有一个协议字段,用来标识IP层的上一层采用的传输层协议。

传输层的TCP和UDP也有一个端口号,来识别上一层中所要进行处理的具体程序,一个程序可以使用多个端口。

CS模式中,服务端程序在UNIX中叫做守护进程,UNIX并不需要将所有守护进程都启动,而是启动一个可以代表它们接受客户端请求的inetd(互联网守护进程)。它是超级守护进程,收到请求后会创建新的进程并转换为对应的守护进程,去处理对应的请求。

TCP是面向连接的可靠的流协议,有顺序控制或重发控制机制,具备流量控制拥塞控制等。

UDP是不可靠的数据报协议,细节处理交给上层应用。主要用于高速传输和实时性要求较高的通信。

 

端口号用来识别同一计算机中的不同应用程序。Mac地址识别同一链路中不同的计算机,IP地址识别网络中互联的主机和路由器。

TCP/IP中通常采用5个信息来识别一个通信即源IP地址、目标IP地址、协议号、源端口号、目标端口号。有一项不同则被认为是不同的通信。

知名端口号在0~1023之间,自定义端口号要避免使用,防止冲突。

不同的传输协议可以使用相同的端口号。数据到IP层后先确定协议,传给相应的协议模块。端口号与传输层协议无关,只要端口号相同都将分配给同一程序处理。当前HTTP都是基于TCP的。

 

TCP需要先建立连接才能传输。

接收端收到数据后返回一个消息通知,即确认应答,发送端发送数据后会等待确认应答,有则说明数据成功到达,反之则很可能丢失,一定时间内没有等到,则重发数据。如果是因为数据已收到但确认应答丢失,发送端重发,接收端丢弃相同数据同时发送该数据的确认应答。

序列号是按顺序给发送数据的每个字节都标上的编号。接收端将自己下一步应该接收的序号作为确认应答返回。序列号初始值并非0而是随机的,之后每个字节则是加一。

重发超时是指重发前等待确认应答的时间间隔。超过这个间隔将重发。每次发包都计算往返时间及偏差,相加后作为重发超时时间。超时都是以0.5秒为单位进行控制,最初一般设置为6秒。数据被重发后等待时间会以指数函数延长,达到一定重发次数后仍未成功则判断为网络异常关闭连接。

三次握手建立连接:客户端发送一个SYN包请求连接并等待应答,服务端返回一个ACK和SYN包,对客户端确认并请求连接,客户端再返回一个ACK包,连接建立。

四次断开连接:客户端发送FIN包请求断开,服务端发送ACK确认,服务端发送FIN包请求断开,客户端发送ACK确认。

TCP首部的控制域字段用来管理TCP连接。

TCP建立连接时确定通信时发送数据包的长度。两端主机发送建立连接请求时在TCP首部中写入MSS项(最大消息长度),选择一个较小的值使用。

滑动窗口并行处理提高速度。确认应答不再是以每个分段确认,在窗口大小内,发送端不必一直等待确认而是继续发送。利用缓冲区缓存数据,一直等到确认到来,否则重发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值