计算机网络(传输层,应用层)

本文深入探讨了计算机网络的传输层和应用层,包括TCP/IP五层模型、OSI七层模型,重点讲解了TCP、UDP协议的特性与区别。详细阐述了TCP的连接建立、拥塞控制、粘包问题及其解决方法,以及TCP与UDP的报文结构。此外,还介绍了应用层的各种协议,如DNS、HTTP、SMTP等,分析了TCP的三次握手和四次挥手过程,以及HTTP与HTTPS的区别和工作原理。最后讨论了HTTP请求类型、状态码以及Session和Cookie的使用区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络模型与相关协议:
OSI七层模型:物理层,数据链路层,网络层,运输层,会话层,表示层, 应用层。
TCP/IP5层模型:物理层,数据链路层,网络层,运输层,应用层。
TCP/IP4层模型:网络接口层,网络层(IP),运输层(TCP/UDP),应用层(HTTP)。

常见应用层协议:DNS,HTTP, SMTP, POP3(接受文件),FTP,Telent远程终端协议。
传输层:TCP,UDP; 网络层:ICMP,IGMP,IP
可以这样做,在OSI模型中ARP协议属于链路层;而在TCP/IP模型中,ARP协议属于网络层。
ARP是IP地址解析为MAC地址 RARP 将MAC地址解析为IP地址
关于TCP协议建立和拥塞控制

一条TCP连接上发送数据速度的影响因素有哪些。(服务器到客户端之间带宽瓶颈、客户端接收能力限制、服务器网卡处理能力)

TCP、UDP协议的区别
TCP提供可靠的、面向连接的运输服务。在传输数据之前必须三次握手建立连接,数据传输结束之后,4次挥手释放连接,而且在数据传递时,又有确认应答、超时重传、滑动窗口、拥塞控制等机制保证传送数据的可靠性。TCP经常用于对网络通信质量有很高要求的地方,如文件传输,邮件发送,远程登录等场景。SMTP、TELNET、HTTP、FTP
UDP在传送数据之前不需要建立连接,目的主机收到UDP报文后,不需要给出确认。UDP不提供可靠交付,一般用于即时通信,如语音、视频、直播等。RIP(路由选择协议),DNS
TCP粘包:
TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾。原因可能是发送方也可能是接收方造成的。
发送方原因:TCP默认使用Nagle算法,将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。
接收方原因:TCP将接收到的数据包保存在接收缓存里,然后应用程序主动从缓存读取收到的分组。这样一来,如果TCP接收数据包到缓存的速度大于应用程序从缓存中读取数据包的速度,多个包就会被缓存,应用程序就有可能读取到多个首尾相接粘到一起的包。

如果多个分组毫不相干,甚至是并列关系,那么这个时候就一定要处理粘包现象了。处理方法:发送方关闭Nagle算法。
接收方:接收方没有办法来处理粘包现象,只能将问题交给应用层来处理。应用层循环读取所有的数据,根据报文的长度判断每个包开始和结束的位置。

TCP为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的。而UDP则是面向消息传输的,是有保护消息边界的,接收方一次只接受一条独立的信息,所以不存在粘包问题。

数据报文的结构:应用程序+TCP/UDP报文头部+IP报文头部(到这是以太网帧,46-1500)+以太网头部;
TCP报文头部结构:(前20字节固定)16为源端口号+16位目的端口号+32位序号+32位确认号+4位头部长度(单位4字节)+6位保留+6个关键字(SYN,ACK,FIN)+16位窗口大小(指接收窗口)+16位校验和+16位紧急指针+最多40字节的选项;
UDP报文头部结构首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。:
IP报文头部结构:
4位版本+4位首部长度(单位4字节)+8位服务类型+16位总长度(字节)
16位标识(分组)+3位标志(是否分组)+13为片内偏移
8位TTL+8位上层协议+16位首部检验和
32位源IP地址
32位目的IP地址

以太网头部:
6字节目的地址+6字节源地址+2字节类型。这个地址指MAC地址。

点对点和端对端的区别:
点到点通信是针对数据链路层或网络层来说的,因为数据链路层只负责直接相连的两个节点之间的通信,一个节点的数据链路层接受ip层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个节点。 点对点是基于MAC地址和或者IP地址,是指一个设备发数据给与该这边直接连接的其他设备,这台设备又在合适的时候将数据传递给与它相连的下一个设备,通过一台一台直接相连的设备把数据传递到接收端。

端到端通信是针对传输层来说的,传输层为网络中的主机提供端到端的通信。因为无论tcp还是udp协议,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少节点。只不过tcp比较可靠而udp不可靠而已。所以称之为端到端,也就是从发送端到接收端。它是一个网络连接,指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值