计算机网络分为哪几层?
OSI模型的话,分为七层,从上到下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP,分为四层:应用层、传输层、网络层、链路层
TCP/IP每一层的功能:
应用层
:这一层负责具体的应用,比如HTTP访问、FTP文件传输、SMTP/POP3邮件处理等等。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:远程登录(Telnet)
、文件传输协议(FTP)
、简单邮件传输协议(SMTP)
、简单网络管理协议(SNMP)
。
传输层
:主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议簇中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用。TCP协议提供可靠的服务,UDP协议提供不可靠但是高效的服务
。
网络层
:IP层有时也称作互连网层,处理分组在网络中的活动,在底层通信网络的基础上,完成路由、寻径功能,提供主机到主机的连接。IP是尽力传送的、不可靠的协议。在TCP/IP协议簇中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互连网控制报文协议),ARP/RARP(地址解析/反向地址解析协议),以及IGMP协议(Internet组管理协议)
。
网络接口层
:有时也称作数据链路层或链路层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。在TCP/IP协议簇中,链路层的协议比较多,它决定了网络形态,但很多都不是专门为TCP/IP设计的。常用的链路层协议包括:以太网协议、PPP协议、帧中继协议、ATM等
。
TCP和UDP有什么区别?什么场景使用TCP,什么场景什么UDP?哪些应用层协议使用了TCP,哪些使用了UDP?
TCP和UDP最主要的区别是TCP是可靠传输的,UDP是不可靠传输的。所以如果我们的发送消息之类的场景,因为你要确保用户的消息不会丢失,需要使用TCP协议。如果你是在进行视频聊天或者看直播,那你可以使用UDP协议,因为即使几个画面丢失了,对用户来说影响也不是很大。
基于TCP的应用层协议有:
Telnet(Teletype over the Network, 网络电传) ,通过一个终端(terminal)登陆到网络
FTP(File Transfer Protocol, 文件传输协议)
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件
POP3(Post Office Protocol 3)邮件读取协议,协议通常被用来接收电子邮件
HTTP
HTTPS
基于UDP的有:
NFS(网络文件系统)
TFTP
SNMP(Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理
DHCP
NTP(Network Time Protocol,网络时间协议) ,用于网络同步
BOOTP(Boot Protocol,启动协议) ,应用于无盘设备
基于UDP和TCP的有:
DNS(Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作
ECHO(Echo Protocol, 回绕协议) ,用于查错及测量应答时间
双工、单工、全双工、半双工
双工:A可以向B发送消息,B也可以向A发送消息
单工:A可以向B发消息,B不能向A发消息
全双工:A向B发送消息的同时,B也可以向A发消息
半双工:A向B发消息的时候,B不能向A发消息,B向A发消息的时候,A同样也不能向B发消息