目录
早期,不同的公司基于自己产品提出了不同的网络体系结构,这显然不符合互联网互连互通的希望,因此由国际标准化组织(ISO)提出了OSI 7层参考模型,但是尽管该模型在理论上有重大的意义,却由于种种原因,没能在实际应用中取得成功,成为了一种法定标准。
而TCP/IP参考模型则在市场上取得了巨大成功,成为了事实标准。
图源王道论坛
1 应用层
1.1 应用层主要协议:
电子邮件协议:SMTP
文件传输:FTP
万维网(WWW):HTTP
DNS协议(域名解析协议):用来将域名转换为IP地址,也可以将IP地址转换为相应的域名地址
TELNET协议:Internet远程登录服务的标准协议和主要方式
1.2 HTTP和HTTPS的区别:
传输信息安全性不同、连接方式不同、端口不同、证书申请方式不同
HTTP:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。http的连接很简单,是无状态的。证书免费申请。
HTTPS:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。需要到ca申请证书,一般免费证书很少,需要交费。
1.3 HTTP常见状态码
(1)2xx (3种)
200 OK:表示从客户端发送给服务器的请求被正常处理并返回;
204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);
206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
(2)3xx (5种)
301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;
301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
303 See Other:表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;
302与303的区别:后者明确表示客户端应当采用GET方式获取资源
304 Not Modified:表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;
307 Temporary Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况);
(3)4xx (4种)
400 Bad Request:表示请求报文中存在语法错误;
401 Unauthorized:未经许可,需要通过HTTP认证;
403 Forbidden:服务器拒绝该次访问(访问权限出现问题)
404 Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;
(5)5xx (2种)
500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;
2 传输层
2.1 传输层主要协议:
TCP协议:面向连接,可靠传输,面向字节流,多应用于文件传输等。
图源王道论坛
UDP协议:无连接,不可靠传输,面向报文,多应用于及时通信等。
2.2 TCP三次握手
TCP连接传输三个阶段:连接建立、数据传送、连接释放
(1) 连接建立:三次握手,采用客户服务器模式
图源王道论坛
SYN=1,同步位,代表连接请求/连接请求的接收报文
seq=x,序号
ACK=1,确认位,与ack搭配使用
ack:期待对方下一个发送的报文段的第一个字节
图源王道论坛
(2) 连接释放:四次挥手
图源王道论坛
FIN=1,结束位
3 网络层
3.1网络层主要协议:
IP协议:无连接
ICMP和IGMP协议:IP协议的补充
ARP协议:即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议
路由协议:ARP的MAC寻址还是局限在同一个子网中,如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由
3.2网络层设备
可以分割广播域。
路由器:多个输入、输出端口的专用计算机、进行转发分组。
根据选定的路由选择协议构造路由表,根据转发表对分组进行转发。
可以互联两个不同网络层协议的网段
3.3 路由算法
3.4 IP地址
每台设备都有一个或多个IP地址:
IP地址:全世界唯一的32位标识符,标识路由器主机的接口。网络号+主机号
IP地址的分类:
图源王道论坛
图源王道论坛
内部网络地址,互联网不承认:
图源王道论坛
4 网络接口层
4.1网络接口层主要协议:
局域网中使用网络接口层协议代表
1.以太网
2.令牌环(淘汰)
3.FDDI(淘汰)
1.SLIP(串行链路网际协议)
2.PPP(点对点协议,MTU默认为1500字节)
4.2网络接口层设备:
物理层:
可以扩展以太网,但不能分割冲突域。
中继器:再生、还原信号,只有两个接口,且因为无存储转发功能,适用于完全相同的两类网络互连(两端协议、速率、网络种类等都相同)(5-4-3原则)。
集线器:多端口中继器,再生、放大信号,然后转发到除输入端口外的所有端口上,是共享式设备。
放大器:放大信号。
链路层:
可以分割冲突域。
网桥:(交换机前身)根据MAC帧目的地址对帧进行转发过滤。过滤通信量、增大吞吐率;扩大了物理范围;提高可靠性;可以互连不同网络、速率的以太网。
透明网桥:以太网站点不知道发送帧经过哪些网桥,即插即用(自学习)。
源路由网桥:把最佳路由信息(路由最少/时间最短)放在帧首部(广播发现帧实现)。
交换机:多接口网桥,独占传输媒体带宽。
直通式:查目的地址后立即转发。
存储转发式:会检查是否正确,错误即丢弃。
简洁地讲:当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包首先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。
5 一些常用的端口号:
0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。
关于数据库的端口号:
Oracle 数据库,默认的端口号为1521
ORACLE EMCTL,默认的端口号为1158
Oracle XDB(XML 数据库),默认的端口号为8080
Oracle XDB FTP服务,默认的端口号为2100
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp
MYSQL默认端口号:3306
REDISE端口号: 6379
参考文章:深入浅出 TCP/IP 协议栈 - 一像素 - 博客园
https://blog.csdn.net/ArthurCaoMH/article/details/88680834
https://blog.csdn.net/sinat_39049092/article/details/109351867
https://blog.csdn.net/banana960531/article/details/85621865