1. 标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议栈,以它为基础组建的互联网是目前国际上规模最大的计算机网络。正因为互联网的广泛应用,使得TCP/IP成为了事实上的网络标准。
TCP/IP四层模型是基于OSI七层模型简化后的模型,虽然OSI模型更加精细、分工更加明确,但响应的是OSI更难实现,所以出现了TCP/IP模型,虽然现在技术上可以实现OSI模型但由于TCP/IP的使用太广更换模型的难度较大。
2. OSI七层模型与TCP/IP协议栈模型对应关系
3. 各个层对应协议有哪些?
应用层 = FTP、HTTP、SNMP、TFTP、DNS、Telnet
传输层 = TCP、UDP
网络层 = IP、ICMP、RIP、OSPF、BGP、ICMP
链路层 = SLIP、CSLIP、PPP、ARP、RARP、MTU、
4. TCP/UDP协议的区别及应用场景?
区别:
(1)面向连接VS无连接
TCP建立一个连接需要3次握手IP数据包,断开连接需要4次握手。另外断开连接时发起方可能进入TIME_WAIT状态长达数分钟(视系统设置,windows一般为120秒),在此状态下连接(端口)无法被释放。UDP不需要建立连接,可以直接发起。
(2)可靠VS不可靠
TCP利用握手、ACK和重传机制,udp没有。
校验和(校验数据是否损坏);
定时器(分组丢失则重传);
序列号(用于检测丢失的分组和重复的分组);
确认应答ACK(接收方告知发送方正确接收分组以及期望的下一个分组);
否定确认(接收方通知发送方未被正确接收的分组);
面向报文
(3)面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。(一个upd的最大报文长度2^16-1-20-8,20是ip报文头,8是udp报文头)
(4)面向字节流
面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
应用场景:
(1)TCP应用场景:
效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。
(2)UDP应用场景:
效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。
5. TCP/UDP协议簇都包含哪些协议?
应用协议:HTTP、SMTP、FTP、SELNET、SNMP、TFTP
传输协议:TCP、UDP
网际协议:IP、ICMP、ARP
路由控制协议:RIP、OSPF、BGP
6. 知名协议所对应的端口号?
SSH = 22
RDP = 3389
SMB = 445
MySQL = 3306
SQLServer = 1433
Oracle = 1521
FTP = 21
MongoDB = 27017
Memcached = 11211
PostgreSQL = 5432
Telnet = 23
SMTP = 25
SMTP_SSL = 465
POP3 = 110
POP3_SSL =995
IMAP = 143
IMAP_SSL = 993
VNC = 5900
Redis = 6379