计算机网络
2020-03-04 19:34:55 0 举报
AI智能生成
计算机网络
作者其他创作
大纲/内容
参考链接:https://www.cnblogs.com/inception6-lxc/p/9152691.html
物理层
信道复用技术
频分复用
时分复用
波分复用
码分复用
数据链路层
三个基本问题
分装成帧
透明传输
差错检测
CRC检错法
物理地址寻址
数据成帧
流量控制
数据的检错
重发
主要协议:
以太网协议
基本数据单位
帧
数据链路层为网络层提供可靠的数据传输
两个重要设备名称
网桥和交换机
网络层
协议
地址解析协议ARP
根据IP地址获取物理的协议
工作流程
每个主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP和MAC地址之间的对应关系
当源主机要发送数据时,首先检查ARP列表有对应IP地址的目的主机的MAC地址。如果有直接发送数据;否则,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机P地址、源主机MAC地址,目的主机IP地址
当本网络的所有主机收到该ARP数据时,首先检查数据包中的目的主机IP地址是否是自己的IP地址,如果不是,则忽略;如果是,则首先从数据包取出源主机IP和MAC地址写入到ARP列表中,如果已存在,则覆盖,然后将自己的MAC地址写入响应包中,发送给源主机
源主机收到ARP响应包后,将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机没有收到ARP响应包,表示ARP查询失败
ARP欺骗
网络上的主机可以自主发送ARP应答消息
主机收到答应报文时不会检测该报文的真实性
由此攻击者可以向某一个主机发送伪ARP应答包,使其发送的信息无法到达预期的主机或到达错误的主机
因特网互联协议IP协议
网际控制报文协议ICMP
逆地址解析协议RARP
功能和ARP协议相反,将局域网中某个主机的物理地址转换成IP地址
设备
路由器
IP地址分类
A类
网络号:8位
第一位为0
最大网络号一个2^7-2
全0是一个保留地址
(127)01111111是环回测试本主机用
主机号:24位
B类
网络号:16位
前两位为10
主机号:16位
C类
网络号:24位
前三位为110
主机号:8位
D类
多播地址
前四位为1110
E类
保留为今后使用
前四位为1111
最大主机数都需要-2
IP数据包格式
首部长度固定为20字节
数据包的最大长度65535字节
组成
版本:占4位
IPV4和IPV6
首部长度:占4位
首部最大长度是60字节
区分服务:占8位
总长度:占16位
表示:占16位
标志:占3位
片偏移:占13位
源地址:占4个字节
目的地址
首部检验和:占16位
协议:占8位
生存时间:占8位
路由器转发IP包
分组转发算法
从数据包首部提取主机IP地址D,得出目的网络地址N
若网络地址N与此路由器直接相连,则把数据包直接交付目的主机D,执行第3步
若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一条路由;否则执行第4步
若路由表中有到达网络地址N的路由,则把数据报传送给路由表指明的下一条路由器;否则,执行第5步
若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行第6步
报告转发分组出错
划分子网
从两级IP地址到三级IP地址
<网络号>,<子网号>,<主机号>
子网掩码
子网掩码是标志两个IP地址是否同属于一个子网的
如果两个IP地址在子网掩码的按位与的计算下所得结果相同,则表明它们共属于一个子网中
子主题
路由选择协议
路由选择协议的任务就是确定数据报在源与目的地之间采用的路径
路由选择协议
静态
动态:Internet所采用的
整个互联网划分为多个小的自治系统(AS)
AS内部
采用内部网关协议IGP
AS外部
采用外部网关协议EGP
传输层
传输控制协议TCP
可靠传输
面向连接的
面向字节流
有缓冲区
流量控制
主要针对端到端传输中控制流量大小并保证传输可靠性(未收到ack就不滑动)。流量控制往往是指点对点通信量的控制,所要做的是右值发送端发送数据的速率
拥塞控制
是一个全局性过程,涉及所有主机、路由器,以及与降低网络传输性能有关的所有因素。防止过多的数据注入网络中。如果有发生丢包则通过拥塞控制减少窗口,确定合适(慢启动、拥塞避免、快重传、快恢复)的拥塞窗口(增性加乘性减)。
三次握手
SYN=1,seq=x
SYN=1,ACK=1,ack=x+1, seq=y
ACK=1,ack=y+1
建立TCP连接
四次挥手
终止TCP连接,因为TCP是全双工的,所以每个方向都必须单独进行关闭
FIN M
ack=M+1
FIN=N
ACK=1,ack=N+1
用户数据报协议UDP
不可靠传输
面向数据报
没有缓冲区
两者区别
TCP面向连接,UDP面向非连接的
TCP提供可靠传输,UDP无法保证
TCP面向字节流,UDP面向数据报文
TCP传输慢,UDP传输快
在一个TCP连接中,仅有两方进行彼此通信,因此广播和多播不能用于TCP
TCP使用校验和,确认 和重传机制来保证可靠传输
TCP使用累计确认
TCP使用滑动窗口来实现流量控制,通过动态改变窗口的大小进行拥塞控制
应用场景
TCP
浏览器
HTTP
Outlook
POP,SMTP
Putty
Telnet,SSH
QQ文件传输
UDP
QQ语音
微信视频
对应的协议
TCP
FTP
文件传输协议,端口21
Telnet
远程登录协议,端口23
SMTP
邮件传送协议,用于发送邮件,端口25
POP3
和SMTP协议对应,用于接收邮件,端口110
HTTP
Web服务器传输超文本到本地浏览器的传送协议,端口默认80
UDP
DNS
域名解析协议,将域名地址转成IP地址,端口53
SNMP
简单网络管理协议,端口161
TFTP
简单文本传输协议,端口69
另外端口
HTTPS 443
Sockets 1080
MySQL 3306
TPC数据流模式,TCP数据报模式
TCP面向连接,一个socket中收到的数据来自同一个主机,有序到达的,所以每次读取多少都可以
UDP是无连接的,任何主机只要知道IP地址和端口就可以向接收端发送数据,如果一次读取超过一个报文,就问乱套
可靠传输
TCP可靠传输
窗口机制
确认机制
重传机制
UDP可靠传输
在应用层实现可靠传输
发送
包的分片
包的确认
包的重发
接收
包的调序
包的序列确认
利用UDP实现可靠的数据传输
RUDP
RTP
UDT
网络层只是更具网络地址将源节点发出的数据包传送到目的节点,而传输层则负责将数据可靠地传送到相应的端口
重要设备
网关
TCP重传机制
超时重传
包发出去就开启一个计时器,时间到没有收到ACK,则进行重发请求的操作,一直到重发达到上限或收到AC
快速重传
当接收方收到的数据包是不正常的顺序,那么接收方会重复吧应该收到的那一条ACK重发发送,这个时候,如果发送方连续收到3条同一个序列号的ACK,那么就会启动快速重传机制
TCP粘包问题
TCP粘包是指发送方发送的若干数据包到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾
原因
发送方原因
TCP默认采用Nagle算法,该算法主要做两件事
只有上一个分组得到确认,才会发送下一个分组
收集多个小分组,在一个确认到来时一起发送
接收方原因
TCP接收到分组时,并不会立刻送至应用层处理,或者说应用层并不一定会立即处理。实际上,TCP将收到的分组保存到接收缓存中,然后应用程序主动从缓存里读取收到的分组。
TCP接收分组速度大于程序读取分组的速度,多个包就会被存至让村,应用程序读时,就会读到多个收尾相接粘到一起的包
什么时候需要处理粘包
如果发送方发送的多个分组本来就是同一个数据的不同部分,这时就不需要处理
如果多个分组毫不相干,甚至是并列关系,就需要处理
处理方法
发送方
关闭Nagle算法
接收方
TCP并没有处理的机制,只有在应用层进行处理
格式化数据:每条数据有固定的格式(开始符合结束符)
发送长度
发送每条数据的时候,将数据的长度一并发送
应用层
HTTP
HTTP(超文本传输协议)
缺点
通信使用明文,内容可能被窃取
无法验证报文的完整性,可能遭遇篡改攻击
不验证通信方的身份,可能遭遇伪装
HTTPS
HTTPS只是在HTTP通信接口用SSL(安全套接字)和TSL(传输层安全)协议
HTTP协议直接更TCP通信。当使用SSL,则演变成HTTP和SSL协议通信,再由SSL和TCP通信。
作用
内容加密
身份验证
数据完整性验证
HTTPS加密
对称加密
内容的加密使用对称加密算法
非对称加密
为了保证对称秘钥的安全,使用非对称加成算法
不直接使用非对称加密算法的原因:非对称加密算法复杂,通信中使用其,效率较低
HTTP与HTTPS区别
https需要到ca申请整证书,免费证书较少,一般收费
http是超文本传输协议,传输的是明文,https则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
http的连接很简单,是无状态的;httpss是由ssl+http协议构建的可进行加密传输、身份认证的网络协议
SSL/TSL协议
SSL可确保数据在传输过程中不会被窃取
TSL用于两个应用程序之间提高保密性和数据完整性
TSL由SSL更名而来
作用
认证用户和服务器:确保数据发送到正确的客户端和服务器
加密数据室防止数据被中途窃取
维护数据的完整性:确保数据在传输过程中不被篡改
TSL比SSL的优势
增强伪随机功能
对于消息认证使用秘钥散列法:TSL使用HMAC,而SSL使用MAC
一致证书处理
特定报警消息
HTTP请求/响应步骤
客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口建立一个TCP连接
发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文有请求行,请求头部,空行和请求数据4部分组成
服务器接收请求并返回HTTP响应
Web服务器解析请求,定位请求资源。
释放TCP连接件
客户端解析HTML内容
HTTP消息结构
状态行
2开头
成功
200:服务器已成功处理了请求
3开头
重定向
304: 不会返回网页
4开头
请求错误
400:错误请求,服务器不理解的语法
403:服务器拒绝请求
404:未找到,服务器找不到请求的网页
5开头
服务器错误
500
服务器内部错误
501
尚未实施,服务器不具备完成请求的功能
502
错误网关,服务器作为网关或代理,从上游服务器收到无效响应
503
服务不可用,服务器目前无法使用,由于超载或停机维护
504
网关超时,服务器作为网关或代理,但是没有及时从上游服务器收到请求
505
HTTP版本不受支持,服务器不支持请求中所用的HTTP版本
HTTP1.0和HTTP1.1的区别
HTTP1.0使用短连接,即客户端和服务器每进行一次HTTP请求,就建立一次连接,任务结束就中断,而HTTP1.1默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,响应头会加入Connection:keep-alive
HTTP1.1还提供了身份认证、状态管理和Cache缓存等机制
HTTP1.1支持请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应。
HTTP1.1增加host字段,HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,所以请求消息中的URL并没有传递主机名。但是随着虚拟主机技术的发展,在一台物理服务器上可以存在多台虚拟主机,并且他们共享一个IP地址
100(Continue)Statue(节约带宽),客户端事先发送一个车只带头域的请求,如果服务器因为权限拒绝了请求,就会返回响应码401,如果服务器接收此请求就会返回100
DNS(域名系统)
查询方式
迭代查询
转发往下一级
递归查询
无转发
工作流程
首先查找电脑的本地的hosts文件,如果没有找到域名对应的IP地址继续下一步
查找本地DNS解析器缓存,如果没有,继续
根据TCP/IP设置的DNS服务器(本地DNS服务器),此服务器收到查询时
然后利用两种查询方式的一种进行查询
空间结构
分层树状结构
根域 .
顶级域名:com, gov, net. edu
二级域名: cn, jp, uk
主机或三级域名
端口:53
0 条评论
下一页