参考文档 TCP/IP网络协议 TCP/IP 协议
**************************** 常见协议 ****************************
IP(Internet Protocol,网际协议)【网络层】 IP 负责计算机之间的通信。IP 负责在因特网上发送和接收数据包。
ICMP(Internet Control Message Protocol,因特网消息控制协议)【网络层】ICMP 负责网络中的错误处理。
IGMP(Internet Group Management Protocol,因特网组管理协议)【网络层】运行在主机和组播路由器之间,用来维护组播组成员信息。
ARP(Address Resolution Protocol,地址解析协议)【网络层】用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址(MAC)。
RARP(Reverse Address Resolution Protocol,反向地址转换协议)【网络层】不常用。RARP 用于通过 IP 查找基于硬件地址(MAC)的计算机网卡的 IP 地址。
TCP(Transmission Control Protocol,传输控制协议)【传输层】TCP 用于从应用程序到网络的数据传输控制。TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。
UDP(User Datagram Protocol,用户数据报协议)【传输层】与TCP协议功能类似,但数据可靠性、安全性不高,与TCP适应场景有所不同。
SSL(Secure Sockets Layer,安全套接字层)位于应用层与传输层之间。SSL 协议用于为安全数据传输加密数据。
MIME(Multi-purpose Internet Mail Extensions,多用途因特网邮件扩展)一种文件格式标准。MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。
BOOTP(Boot Protocol,自举协议,UDP67(S) UDP68(C))【应用层】DHCP的前身。BOOTP 用于从网络启动计算机。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议,UDP67(C) UDP68(S))【应用层】DHCP 用于向网络中的计算机分配动态 IP 地址。
DNS(Domain Name System,域名系统,TCP53/UDP53)【应用层】用于查询域名与IP地址间的对应关系。
FTP(File Transfer Protocol,文件传输协议,TCP21(控制端口) TCP20)【应用层】FTP 负责计算机之间的文件传输。
HTTP(Hyper Text Transfer Protocol,超文本传输协议 ,TCP80/8080)【应用层】HTTP 负责 web 服务器与 web 浏览器之间的通信。HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。
HTTPS(HTTP Secure,安全的 HTTP,TCP443)【应用层】HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。
IMAP(Internet Message Access Protocol,因特网消息访问协议,TCP143)【应用层】IMAP 用于存储和取回电子邮件。
LDAP(Lightweight Directory Access Protocol,轻量级的目录访问协议,UDP389)【应用层】LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。
NFS(Net File System,网络文件系统,TCP2049/UDP2049)【应用层】分布式文件系统,允许使用者访问网络文件如同访问本机文件一样。
NTP(Network Time Protocol,网络时间协议,UDP123)【应用层】NTP 用于在计算机之间同步时间(钟)。
POP(Post Office Protocol,邮局协议,TCP110(POP3))【应用层】POP 用于从电子邮件服务器向个人电脑下载电子邮件。
PPTP(Point to Point Tunneling Protocol,点对点隧道协议,TCP1723)【应用层】PPTP 用于私人网络之间的连接(隧道)。
SMTP(Simple Mail Transfer Protocol,简易邮件传输协议,TCP25)【应用层】SMTP 用于电子邮件的传输。
SNMP(Simple Network Management Protocol,简单网络管理协议,UDP161(代理) UDP162(管理))【应用层】SNMP 用于计算机网络的管理。
SSH(Secure Shell,安全外壳协议,TCP22)【应用层】通过加密技术处理,提供安全的远程登录和文件传输服务。
Telnet(Telecommunications Network,远程登录协议,TCP23)【应用层】远程登录主机,提供了在本地计算机上完成远程主机工作的能力。
TFTP(Trivial File Transfer Protocol,简单文件传输协议,UDP69)【应用层】与FTP类似,但只提供不复杂、开销不大的小文件传输服务。
PPP(Point to Point Protocol,点对点协议)【数据链路层】点对点之间无重传、开销小、速度快、支持多协议、具有错误检测但不能纠错的不可靠传输协议。
**************************** 重要概念 ****************************
ARP(Address Resolution Protocol,地址解析协议)
在主机和路由器中缓存了近期(20min?)与自己有过通信的IP地址与MAC地址的对应关系,向目标IP发送数据帧时,目标IP对应的MAC地址将被包含在数据帧首部。也就是说,如果自己的ARP缓存表中没有目标IP的MAC地址时,需要向网络广播ARP请求数据帧以获取目标IP的MAC地址。
ARP代理:路由器收到ARP请求后,将自己的MAC地址发送给源主机,源主机将把数据帧发送到该路由,由该路由将数据帧转发到真正的目的主机。
ARP欺骗:由上述ARP原理可以看出,若有黑客伪造ARP应答数据帧,将会致使源主机发送数据到错误的地址,从而被黑客截获。
RARP(Reverse Address Resolution Protocol,逆向地址解析协议)
RARP 与 ARP 是相反的关系,用于将 MAC 地址转换为 IP 地址。比如无盘机在启动时可能不知道自己的 IP 地址,它们可以将自己的 MAC 地址使用 RARP 请求广播出去,RARP 服务器就会响应并回复无盘机的 IP 地址。(此协议已不常用)
TTL(Time To Live,生存时间)
TTL是IPv4包头的一个8bit字段,指定 IP 包被路由器丢弃之前允许通过的最大网段数量( 或 IP 数据包在计算机网络中可以转发的最大次数)。设想,如果不规定此值,假如在有限次转发后数据包未能到达目的主机或目的主机不存在,则该数据包将无限循环转发,造成网络资源极大浪费。
UDP(User Datagram Protocol,用户数据报协议)
无连接、不保证交付可靠性、简单封装、无拥塞控制。
UDP报文封装示意TCP(Transmission Control Protocol,传输控制协议)
TCP是可靠的、面向连接的、点对点、全双工、无差错、不丢失、不重复、按顺序、基于字节流的传输协议。
TCP传输可靠性如何保证
- 收到数据做出确认应答 (实际传输采用 流水线传输、累积确认(最后一段))
- 发出数据方超时重发
- 检验和出错丢弃
- 请求序号确保数据正确衔接
- 流量控制:慢启动(指数增长)、加性增(+1U)、乘性减(-1/2)
DNS (Domain Name Service,域名服务)
数字组成的IP地址不便于记忆,通常有对应域名。注意,DNS提供的是 IP地址-域名 对应关系,而ARP提供的是 IP地址-MAC地址 对应关系。域名查找的顺序是 本地DNS缓存 - hosts文件 - 域名服务器。使用 host xxx.xx 可进行DNS查询。
域名服务器其实是个分层次的系统,域名解析的过程,有迭代查询(本地服务器为中心)和递归查询两种方式 。
- 根 DNS 服务器 :全世界共有 13 台根域名服务器,编号 A 到 M,其中大部分位于美国。
- 顶级(TLD)DNS 服务器 :负责如 com 、org 、edu 等顶级域名和所有国家的顶级域名(如 cn 、uk 、jp )。
- 权威 DNS 服务器 :大型组织、大学、企业的域名解析服务。
- 本地 DNS 服务器 :通常与我们主机最近的 DNS 服务器。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)
不复杂、开销不大、不能列出目录、不进行认证、基于UDP、只能传输小文件的简单文件传输协议。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) 和 POP3(Post Office Protocol Version 3 ,邮局协议版本3)
用户发送邮件使用SMTP,管理和下载邮件使用POP3. 当邮件在邮件服务器之间传输时,邮件服务器既是客户端又是服务端。
未完待续……
网友评论