OSI参考模型
七层 应用层:最靠近用户的一层,为应用程序提供网络服务。
六层 表示层:数据格式转换编码格式UTF-8。
五层 会话层:双方之间建立、管理和终止会话。
四层 传输层:建立、维护和取消端到端的数据传输过程。
三层 网络层:定义逻辑地址;实现数据从源到目的地的转发。
二层 数据链路层: 数据封装成帧;实现数据的点到点、或点到多点直接通信。
一层 物理层:规定物理介质、网线、光纤、电流等、以电压的高低代表0 、1 。
TCP/IP参考模型
传输控制协议/网际协议,是互联网相关各类协议族的总称。
TCP/IP常见协议
应用层 | TeInet | FTP | TFTP | SNMP |
HTTP | SMTP | DNS | DHCP | |
传输层 | TCP | UDP | ||
网络层 | ICMP | IGMP | ||
IP | ARP | |||
数据链路层 | PPPOE | |||
Ethernet | PPP | |||
物理层 | ...... |
应用层:
HTTP(超文本传输协议):用来访问在网页服务器上的各种页面。
FTP(文件传输协议):为文件传输提供了途径,允许数据从一台到另一台主机。
DNS(域名称解析服务):用于实现从主机域名到IP地址之间的转换。
传输层:
TCP (传输控制协议) :为应用程序提供可靠的面向连接的通信服务。
UDP(用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证。
网络层:
IP(互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
IGMP(因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
ICMP(网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
TCP/UDP区别总结
TCP | UDP | |
是否连接 | 面向连接 | 无连接 |
是否可靠 | 可靠传输,使用流量控制和拥塞控制 | 不可靠传输,不使用流量控制和拥塞控制 |
连接对象个数 | 只能是一对一通信,全双工 | 支持一对一,一对多,多对一和多对多交互通信 |
传输方式 | 面向字节流 | 面向报文 |
传输效率 | 传输效率低 | 传输效率高 |
传输速度 | 慢 | 快 |
首部开销 | 首部最小20字节,最大60字节 | 首部开销小,仅8字节 |
适用场景 | 适用于要求可靠传输的应用,例如文件传输,对效率要求低、准确性高 | 适用于实时应用(视频会议、直播等),对效率要求高、准确性低 |
TCP和UDP协议端口进行分类
使用TCP协议常见端口主要有以下几种:
- FTP——文件传输协议——20、21号端口
- Telnet——远程登陆协议——23号端口
- SMTP——简单邮件传送协议——25号端口
- POP3——接收邮件——110号端口(POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。)
- HTTP——超文本传输协议——80号端口
- HTTPS——超文本传输安全协议——443端口
- SSH——安全外壳协议——22端口
- RDP——远程桌面连接协议——3389端口
使用UDP协议常见端口主要有以下几种:
- DNS——域名解析服务——53号端口
- SNMP——简单网络管理协议——161号端口
- TFTP——简单文件传输的协议——69号端口
- OICQ——网络即使通讯协议——服务器8000,客户端4000端口
TCP和UDP协议
在这里,建立连接阶段,我们只关注ACK 、SYN 2个字段就够了。挥手阶段还会需要用到FIN字段。
SYN:发起一个新连接,SYN=1表示发起一个新连接。
ACK:确认号是否有效,ACK=1表示确认号有效,ACK=0表示报文不含确认号信息。
FIN:结束标志,用于释放连接,FIN=1表示关闭本方数据流。
通道的建立———三次握手:
(1)在建立通道时,客户端首先要向服务端发送一个SYN同步信号。
(2)服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。
(3)当服务端的ACK和SYN到达客户端后,客户端与服务端的这个“通道”就会建立起来。
通道的关闭———四次挥手:
(1)在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。
(2)服务端在收到这个信号之后会向客户端发出一个ACK确认信号。
(3)如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。
(4)客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。
FTP文件传输协议
端口问题∶21、20端口
使用FTP进行文件传输时,会使用两个TCP连接。
第一个连接是FTP客户端和FTP服务器间的控制连接。FTP服务器开启21号端口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立连接的请求。控制连接用于在服务器和客户端之间传输控制命令。
第二个连接是FTP客户端和FTP服务器间的数据连接。服务器使用TCP的20号端口与客户端建立数据连接。通常情况下,服务器主动建立或中断数据连接。
传输模式(类型) :ASCIl模式和二进制模式
FTP传输数据时支持两种传输模式:ASCIl模式和二进制模式。ASCII模式用于传输文本。发送端的字符在发送前被转换成ASCIl码格式之后进行传输,接收端收到之后再将其转换成字符。二进制模式常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式,即可传输。
DNS域名解析协议
作用:将域名(网址)解析成对应的IP地址 www.baidu.com ------ 115.239.211.112。DNS主要解决IP地址不便记忆的问题。
ARP地址解析协议
基本功能:知道目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ARP工作原理
假设有一台主机想要向本地局域网上的另一台目标主机发送 IP 分组时,首先会在本地主机的 ARP 高速缓存中查询是否有目标主机的 IP 地址,如果有该 IP 地址对应的条目,则可以直接查出其 MAC 地址,写入 MAC 帧,然后通过局域网将该帧发送给对应 MAC 地址的主机上。
如果没有,则先通过广播 ARP 请求分组(如上图),在获得目标主机的 ARP 响应分组后(如下图),将目标主机的 MAC 地址写入 ARP 高速缓存,建立目标主机的 IP 地址到 MAC 地址的映射关系。注意: ARP 请求分组是广播发送的,但 ARP 响应分组是普通的单播。
ARP 的 4 种典型情况总结:
- 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。