IP地址
IP地址位数=网络位数+主机位数=32位。
子网掩码
子网掩码的位数就是网络的位数。它决定前多少位是网络位,多少位是主机数的.
- A类网络的网络位数是8位,子网掩码就是255.0.0.0,B类网络的网络位数是16位,子网掩码是255.255.0.0,C类是24位,255.255.255.0。
- 当两个不同子网的ip进行通信时,先去查询默认网关的mac,因为跨子网通讯需要默认网关的转发,而要和默认网关通讯,就需要获得其mac地址。
OSI网络参考模型:
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
为了方便记忆我缩写为 “ 物数网传会表应 ”。 下面是每层结构所对应的功能以及常用协议(由高层到低层)。
- 应用层:确定进程之间通信的性质,以满足用户的需要。HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3。
- 表示层:主要用于处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加密与解密、数据压缩与终端类型的转换。
- 会话层:在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。
- 传输层:常规数据递送-面向连接或无连接。为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。 tcp udp。
- 网络层:本层通过寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。它包括通过互连网络来路由和中继数据 ;除了选择路由之外,网络层还负责建立和维护连接,控制网络上的拥塞以及在必要的时候生成计费信息。常用设备有交换机。ip ipx ‘apple talk’
- 数据链路层:在此层将数据分帧,并处理流控制。屏蔽物理层,为网络层提供一个数据链路的连接,在一条有可能出差错的物理连接上,进行几乎无差错的数据传输(差错控制)。本层指定拓扑结构并提供硬件寻址。常用设备有网卡、网桥、交换机。802.3、802.4、802.5、802.11、FDDI、ATM
- 物理层:处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。v.24 v.35 RS232 RS485
TCP/IP模型
_TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互连层、传输层(主机到主机)、和应用层。 _
- 应用层
应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等. - 传输层
传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).
TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议提供的则是不可靠的、无连接的数据传输服务. - 网际互联层
网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有四个主要协议:网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
IP协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。 - 网络接入层(即主机-网络层)
网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。
常见协议解析
- __TCP 协议:__TCP是面向有链接安全的传输,是提供有序的传输,所以每个数据段都要标上一个序号当接收方收到乱序的包时,可以重新排序。
基于TCP:CIFS, FTP, HTTP, HTTPS。
Seq:一个Seq号的大小是根据上一个数据段的Seq号和长度相加来的。
Len:该数据段的长度,TCP头部带的数据很多,所以不要以为Len=0就没有意义。
Ack:确认号,比如甲方发送了“Seq:x,Len:y”,那么乙回复的确认号Ack就是:x+y。
TCP头附带了很多标志位:
SYN 这个标志头说明正在发起连接请求,因为连接是双方的,所以说双方都需要放一个SYN。
FIN 这个标志头表明正在请求终止连接。
RST 这个是用来重置一个混乱的连接,或者拒绝一个无效的请求。
TCP协议连接时的三次握手形象的表示:
客户端:“我能跟你建立连接吗?我的初始发送序号是x,如果你同意的话就Ack=x+1。”
服务器:“收到啦,Ack=x+1,我也想跟你建立连接。我的初始发送序号是Y,你如果答应就Ack=Y+1。”
客户端:“收到啦,Ack=Y+1。”
为什么要用三个包来建立连接,两个会不够可靠,比如说某个网络有多条路径,客户端请求建立连接的第一个包跑到一个延迟严重的路径上,所以迟迟没有得到回应,因此客户端以为是丢包了,又重新发送了一个包,第二次由于走了正确的路径很快完成工作并关闭了连接,对于客户端来说事情已经结束了,没想到它的第一个请求经过跋山涉水,还是达到了服务器,服务器并不知道这是一个旧的无效请求,所以按照惯例回复,假如TCP两次握手,服务器这样就建立了一个无效的连接,而在三次握手的机制下,客户端收到服务器的回复,知道这个连接是无效,所以发出一个拒绝包,就终止了连接。
TCP断开连接的“四次握手”。
客户端:“我希望断开连接(注意FIN标志)”。
服务端:“知道了,断开吧。”
服务端:“我这边的连接也想断开(请注意FIN标志)”。
客户端:“知道了,断开吧”。
Window Size:TCP的每个包的都含有Window Size,是在向对方声明自己的接收窗口。
RTO:超时重传。
快速重传:当发生拥塞时,后续的包到达接收方时,接收方会发现其Seq号比期望的值大,所以它每收到一个包就ACK一次期望的Seq号,以此提醒发送方重传。当发送方收到3个或者以上的重复确认(Dup Ack)时,就意识到相应的包丢失,从而立即重传它。这个过程称为快速重传,因为它不像超时重传时一样需要等待一段时间。
假设发送方发送了1,2,3,4,5,6,7,8,但是接收方就只收到了1,4,5,6,7,8(下面关于NewReno方案和SACK方案)
NewReno方案:当接收方收到重传过来的2号包之后,会回复一个Ack3,因此发送方可以推断出3号包也丢失了,把它也传一遍,因为丢的包都已经补全,所以回复一个Ack9,这时候发送方就可以传新的包了。但是当丢包量特别大的时候,就需要花费多个RTT(往返时间)来重传丢失的包。
SACK方案:接收到Ack2以后,顺便就把收到的包号告诉了发送方,就像这样:收到4号包时,告诉发送方:“我已经收到4号包,请给我2号包”。收到5号包时,告诉发送方:“我已经收到4,5包,请给我2号包”。... 因此发送方对丢包已经了如指掌了,在快速重传2号包之后,它接着传3号包就行了,然后再传9号包。
TCP的特点:
- 没有拥塞时,发送窗口越大,性能越好。
- 经常发生拥塞时,限制发送窗口能提高性能。
- 超时重传对性能影响很大,因为它有一段时间(RTO)是没有传输数据的。
- 快速重传对性能影响的小一些,因为它没有等待时间,而且拥塞窗口减少的幅度不是很大。
- SACK和NewReno有利于提高传输的效率,提高性能。
- 丢包对极小的文件比大文件严重。
- UDP协议:面向无链接的协议,UDP没有重传机制,所以丢包由应用层来处理,当传输的过程中,丢失一个包,则要重传整个包。UDP的协议头里面只有端口号,包长度,和验证码等少量的信息,总共就8个字节。
- DNS协议:域名解析协议,把域名解析成IP地址。有两种查询方式:递归查询,还有迭代查询。DNS除了能用来欺骗还能用来当作攻击,著名的DNS放大攻击就很厉害。
- ARP协议:地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
为什么要有ARP?
OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface). IP地址在第三层, MAC地址在第二层。协议在发生数据包时,首先要封装第三层 (IP地址)和第二层 (MAC地址)的报头, 但协议只知道目的节点的IP地址,不知道其物理地址,又不能跨第二、三层,所以得用ARP的服务。
__RARP协议:__RARP协议(Reverse Address Resolution Protocol),反向地址转换协议。反向地址转换协议就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。
-
__NFS协议:__network file system,NFS可以提供共享目录,分别挂在到多台客户端的本地目录上,当本地的客户端读写这些目录时,实际上就是在对NFS服务器上的读写,以下是NFS最显而易见的好处:
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
__CIFS协议:__Common Internet File System。CIFS协议有三个版本:SMB,SMB2,SMB3,目前SMB,SMB2比较流行。在windows上创建一个CIFS共享非常简单,只需要右键单击,在选择属性里-->共享,在配置权限就行了,CIFS是基于TCP的。
FTP协议:文件传输协议File Transfer Protocol,FTP的服务器端口号是21。采用明文传输,基于TCP。
HTTP协议:超文本传输协议HyperText Transfer Protocol,HTTP的服务器端口号是80,无加密传输,基于TCP
__HTTPS协议:__Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL,端口号是443,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
笔记来于<<Wireshark 网络分析就这么简单>> 林沛满 著