应用层:http dns TFTP 、Telnet 、FTP、SMTP、NFS、Rlogin、 SNMP(UDP)……

传输层:TCP、UDP

网络层: ICMP(ping tracerute) RIP(路由协议使用UDP)

数据链路层:ARP、RARP、ppp

物理层:比特流

------以上待确认--------


运行于TCP协议之上的协议:

HTTP协议:超文本传输协议,用于普通浏览

HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议

FTP协议:文件传输协议,用于文件传输

POP3协议:邮局协议,收邮件使用

SMTP协议:简单邮件传输协议,用来发送电子邮件

Telent协议:远程登陆协议,通过一个终端登陆到网络

SSH协议:安全外壳协议,用于加密安全登陆,替代安全性差的Telent协议


运行于UDP协议之上的协议:

DHCP协议:动态主机配置协议,动态配置IP地址

NTP协议:网络时间协议,用于网络时间同步

BOOTP协议:引导程序协议,DHCP协议的前身,用于无盘工作站从中心服务器上获取IP地址


【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_传输协议

【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_流量控制_02



举一个例子:

我们用HTTP 举例来说明,首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个Web 页面的HTTP 请求。接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP 协议),增加作为通信目的地的MAC 地址(media access control address媒体通过控制地址,也称局域网地址,MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。)后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_传输协议_03


与HTTP 关系密切的协议:IP、TCP 和DNS

在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制称为路由选择(routing)


【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_应用层_04

【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_传输协议_05

所以进行网络编程解决两个问题:1.在网络中如何找到一台主机或者多台主机:依靠网络层的IP解决

2.当双方连接成功之后,如何进行可靠的传输:针对传输层进行编程,传输层的主要两个协议


【TCP/IP协议族】TCP/IP 四层中分别有哪些协议_流量控制_06

TCP VS UDP

1.Tcp 面向连接,提供可靠的传输; UDP面向无连接,提供不可靠传输

2. Tcp 提供流量控制 ; UDP不提供流量控制

3. Tcp 保证传输数据顺序 ; UDP不保证传输顺序,也就是可能是乱序收包

4. TCP 面向字节流 ; UDP 面向数据包