按照网络作用范围分类:
(1)广域网WAN (2)城域网MAN (3)局域网LAN (4)个人区域网PAN
OSI七层模型
OSI中的层 |
功能 |
相关协议 |
应用层 |
文件传输,电子邮件,文件服务,虚拟终端 |
HTTP,FTP,SMTP,DNS,DHCP |
表示层 |
数据格式化,代码转换,数据加密 |
|
会话层 |
解除或建立与别的接点的联系 |
SQL,SCP |
传输层 |
提供端对端的可靠的报文传递和错误恢复 |
TCP,UDP |
网络层 |
负责数据包从源到宿的传递和网际互联 |
IP,ARP,ICMP |
数据链路层 |
传输有地址的帧以及错误检测功能,点对点传递 |
PPP |
物理层 |
以二进制数据形式在物理媒体上传输数据 |
数据链路层使用的信道主要有两种:
点对点信道(使用PPP协议) 广播信道(使用CSMA/CD协议)
数据链路层三个基本问题
封装成帧 透明传输 差错检测
中间设备:
(1)物理层:转发器或集线器
(2)数据链路层:网桥或桥接器或交换机
(3)网络层:路由器
(4)网络层以上的:网关
ARP地址解析协议:由IP地址找出其相应的硬件地址
请简单解释一下,arp协议和arp攻击。
地址解析协议。ARP攻击的第一步就是ARP欺骗。由上述“ARP协议的工作过程”我们知道,ARP协议基本没有对网络的安全性做任何思考,当时人们考虑的重点是如何保证网络通信能够正确和快速的完成——ARP协议工作的前提是默认了其所在的网络是一个善良的网络,每台主机在向网络中发送应答信号时都是使用的真实身份。不过后来,人们发现ARP应答中的IP地址和MAC地址中的信息是可以伪造的,并不一定是自己的真实IP地址和MAC地址,由此,ARP欺骗就产生了。
两级IP缺点:
IP地址空间的利用率有时很低
给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏
两级IP地址不够灵活
socket与TCP/IP的对应关系
Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口
运输层两个重要协议:
用户数据报协议UDP:面向事务的不可靠信息传送服务,适用于多点广播,对可靠性要求低的场景
传输控制协议TCP:面向连接的、可靠的、基于字节流的传输层通信协议,适用于需要数据完整性与实时性的场景
TCP四种拥塞控制算法:慢开始,拥塞避免,快重传,快恢复
TCP运输连接有三个阶段:连接建立、数据传送、连接释放
三次握手,四次挥手
第一次:建立连接,客户端发送SYN包(seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;
第二次:服务器收到SYN包,确认客户的SYN(ack=x+1),同时自己也发送一个SYN+ACK包(seq=y),此时服务器进入SYN_RCVD状态;
第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(seq=x+1,ack=y+1),此包发送完毕,客户端和服务器进入ESTAB_LISHED状态,完成三次握手
第一次:客户端发送FIN,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态
第二次:服务器发送ACK给客户端,服务器进入CLOSE_WAIT状态,此时服务器还可以给客户端发送数据,反之不行
第三次:服务器发送FIN,用来关闭服务器到客户端的数据传送,服务器进入LAST_ACK状态
第四次:客户端收到FIN后,发送ACK给服务器,然后进入TIME_WAIT状态,服务器进入CLOSED状态,客户端等待2MSL后进入CLOSED状态,完成四次挥手
为什么要等待2MSL时间:
确保有足够的时间让对方收到ACK包
避免新旧连接混淆
域名系统DNS(Domain Name System):从域名解析出IP地址。
域名服务器四种类型:
(1)根域名服务器(2)顶级域名服务器(3)权限域名服务器(4)本地域名服务器
文件传送协议FTP(File Transfer Protocol)
万维网WWW(World Wide Web)
统一资源定位符URL
简单邮件传送协议SMTP
代理服务器(proxy server)
作用:代理服务器把最近的一些请求和响应暂存在本地磁盘中,当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。减轻出口路由负担。
在浏览器中输入网址后执行的全部过程
1.查找域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器。
2.向IP对应的服务器发送请求。
3.服务器响应请求,发回网页内容。
4.浏览器解析网页内容。
输入 ping IP 后敲回车,发包前会发生什么?
首先根据目的IP和路由表决定走哪个网卡,再根据网卡的子网掩码地址判断目的IP是否在子网内。如果不在则会通过arp缓存查询IP的网卡地址,不存在的话会通过广播询问目的IP的mac地址,得到后就开始发包了,同时mac地址也会被arp缓存起来。
IP地址的编码分为哪俩部分?
分网络号和主机号
A类IP第一字节是网络号,后三字节是主机号
B类IP前两字节是网络号,后两字节是主机号
C类IP前三字节是网络号,后一字节是主机号
HTTP和HTTPS的主要区别?
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
ttp的连接很简单,是无状态的;
HTTPS默认使用443端口,HTTP使用80端口
HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全
HTTPS需要到CA申请证书,HTTP不需要
HTTPS建立连接过程
1 客户端访问https连接
2 服务器端发送证书(公钥)给客户端
3 客户端验证服务器端的证书,生成随机字符串并加密数据
4 服务器端接收加密信息,解密得到客户端提供的随机字符串
HTTP状态码
1xx:指示信息——表示请求已接收,继续处理
2xx:成功——表示请求已被成功接收、理解、接受
3xx:重定向——要完成请求必须进行更进一步的操作
4xx:客户端错误——请求有语法错误或请求无法实现
5xx:服务器端错误——服务器未能实现合法的请求
Cookie: https://mp.weixin.qq.com/s/iDOoeBA48gnoJUhkCHosqA
GET请求和POST请求的区别
HTTP报文层面:GET将请求信息放在URL,POST放在报文体中
数据库层面:GET符合幂等性和安全性,POST不符合
其他层面:GET可以被缓存、被存储,而POST不行
TCP粘包/拆包
TCP是个“流”协议,所谓流,就是没有界限的一串数据,它们是连成一片的,其间并没有分界线。
TCP粘包:socket读取时,读到了实际意义上的两个或多个数据包的内容,同时将其作为一个数据包进行处理。
TCP拆包:socket读取时,没有完整地读取一个数据包,只读取一部分。
解决思路:
(1)消息定长,例如每个报文的大小为固定长度200字节,如果不够,空位补空格;
(2)在包尾增加回车换行符进行分割,例如FTP协议;
(3)将消息分为消息头和消息体,消息头中包含表示消息总长度的字段;
(4)更复杂的应用层协议。