计算机网络-2-tcpip协议

news/2024/10/18 16:45:41/

1.说说 TCP/IP 四层模型?

框架
TCP/IP(Transmission Control Protocol/Internet Protocol)模型是一种用于描述互联网通信的协议层次结构。它分为四个主要层次,每个层次都定义了不同的协议来实现特定的功能。下面是TCP/IP模型各层的常用协议及其典型使用场景:

1. 应用层 (Application Layer)

直接面向用户和应用程序,提供各种网络服务。

  • HTTP (Hypertext Transfer Protocol): 用于在Web浏览器与服务器之间传输数据的标准协议。
  • HTTPS (HTTP Secure): 使用SSL/TLS加密的HTTP协议,用于安全的数据传输。
  • FTP (File Transfer Protocol): 用于文件上传和下载。
  • SFTP (SSH File Transfer Protocol): 基于SSH的安全文件传输协议。
  • SMTP (Simple Mail Transfer Protocol): 用于电子邮件发送。
  • POP3 (Post Office Protocol version 3)IMAP (Internet Message Access Protocol): 分别用于接收电子邮件。
  • DNS (Domain Name System): 将域名转换为IP地址。

2. 传输层 (Transport Layer)

提供端到端的通信服务,确保数据可靠传输。

  • TCP (Transmission Control Protocol): 提供面向连接、可靠的数据传输服务。
    • 使用场景:需要确保数据完整性和顺序的应用,如Web浏览、邮件等。
  • UDP (User Datagram Protocol): 提供无连接、不可靠的数据传输服务。
    • 使用场景:实时应用如语音通话、视频流等,以及网络管理工具如SNMP和NTP。

3. 网络层 (Internet Layer)

负责在不同网络之间路由数据包,提供逻辑地址(IP 地址)和网络寻址功能。用于处理数据包的分组、转发和路由选择,确保数据可以从源端传输到目标端。

  • IP (Internet Protocol): 负责数据包在网络间的路由。
    • 版本:IPv4和IPv6。
    • 使用场景:所有基于TCP/IP的通信。
  • ICMP (Internet Control Message Protocol): 用于传递网络错误信息或测试网络连通性(如ping命令)。

4. 链路层 (Link Layer)

负责将数字信号在物理通道(网线)中准确传输,定义了如何在单一网络链路上传输数据,如何处理数据帧的发送和接收,包括物理地址(MAC 地址)的解析。

  • Ethernet: 最常见的局域网通信协议。
  • PPP (Point-to-Point Protocol): 用于通过点对点链路建立网络连接,如DSL和拨号连接。
  • Wi-Fi (IEEE 802.11): 无线局域网通信标准。
  • ARP (Address Resolution Protocol): 用于将IP地址映射为物理地址(MAC地址)。
  • RARP (Reverse Address Resolution Protocol): 用于从物理地址(MAC地址)获取IP地址。

2.传输层 TCP三次握手四次挥手工作在哪一层?

三次握手和四次挥手都是工作在传输层。传输层(Transport Layer)是 OSI 模型的第四层,负责提供端到端的通信服务,包括数据传输的建立、维护和终止。
TCP 作为一种面向连接的协议,通过三次握手建立连接,通过四次挥手终止连接,确保数据传输的可靠性和完整性。

3.为什么要三次握手和四次挥手?

三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。

第一次握手:Client 什么都不能确认;Server 确认了对方发送正常,自己接收正常
第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常
第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常。

断开一个 TCP 连接则需要“四次挥手”:

第一次挥手:客户端发送一个 FIN(SEQ=x) 标志的数据包->服务端,用来关闭客户端到服务端的数据传送。然后客户端进入 FIN-WAIT-1 状态。
第二次挥手:服务端收到这个 FIN(SEQ=X) 标志的数据包,它发送一个 ACK (ACK=x+1)标志的数据包->客户端 。然后服务端进入 CLOSE-WAIT 状态,客户端进入 FIN-WAIT-2 状态。
第三次挥手:服务端发送一个 FIN (SEQ=y)标志的数据包->客户端,请求关闭连接,然后服务端进入 LAST-ACK 状态。
第四次挥手:客户端发送 ACK (ACK=y+1)标志的数据包->服务端,然后客户端进入TIME-WAIT状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时如果客户端等待 2MSL 后依然没有收到回复,就证明服务端已正常关闭,随后客户端也可以关闭连接了。
只要四次挥手没有结束,客户端和服务端就可以继续传输数据。

为什么要四次挥手?

TCP 是全双工通信,可以双向传输数据。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了 TCP 连接。
为什么是三次握手四次挥手

4.说说 WebSocket 与 Socket 的区别?

Socket 其实就是等于 IP 地址 + 端口 + 协议。
具体来说,Socket 是一套标准,它完成了对 TCP/IP 的高度封装,屏蔽网络细节,以方便开发者更好地进行网络编程。

WebSocket 是一个持久化的协议,它是伴随 H5 而出的协议,用来解决 http 不支持持久化连接的问题。
Socket 一个是网编编程的标准接口,而 WebSocket 则是应用层通信协议。

5.说一下你了解的端口及对应的服务?

在这里插入图片描述


http://www.ppmy.cn/news/1514259.html

相关文章

oracle数据库查询序列时报错序列号不允许在此处

一、错误解释: 在Oracle数据库中,如果在不适当的上下文中尝试引用序列(sequence),可能会遇到“序列不允许在此处”的错误。这通常发生在试图在不支持序列的SQL语句中使用它时,比如在WHERE子句或者SELECT列表…

Eureka原理与实践:构建高效的微服务架构

Eureka原理与实践:构建高效的微服务架构 Eureka的核心原理Eureka Server:服务注册中心Eureka Client:服务提供者与服务消费者 Eureka的实践应用集成Eureka到Spring Cloud项目中创建Eureka Server创建Eureka Client(服务提供者&…

UDP+TCP

一、UDP协议 1.recvfrom:recvform(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen); 参数:socket的fd; 保存数据的空间地址 ; 空间大小; 默认接收方式(默认阻塞&#xf…

Nmap扫描六种端口状态介绍

传统意义上的端口状态只有 open 或 close 两种。网络发现扫描最常用的工具是Nmap,可以提供更细分的端口状态,共计六种,分别为open, closed, filtered, unfiltered, open|filtered, or closed|filtered。 1. 端口状态介绍 开放的(o…

PyTorch踩坑记录1

1 model.eval()无法关闭dropout 因为model.eval()控制self.training参数,只有用nn.Dropout(0.5)声明才能在调用model.eval()后关闭,用F.dropout(x, p0.5)是没办法自动关闭的,需要手动把self.training的参数传入到F.dropout()里才行。 网上查…

数据捕手:Python 爬虫在社交媒体的深度探索

标题:数据捕手:Python 爬虫在社交媒体的深度探索 在数字化时代,社交媒体数据成为了洞察用户行为、市场趋势和公共情绪的宝贵资源。Python作为一种强大的编程语言,提供了丰富的库和框架,使得从社交媒体平台抓取数据变得…

通过Qt Creator Plugin开发Qt Creator插件-【金丹篇】

1.前言 由于工作学习需要基于Qt Creator架构开发类似的插件,本人感慨网络上Qt 相关的文档真是少。我直接在官方社区查找Qt Creator Plugin愣是一点资料没有。其实想想也是自定义的三方插件到Qt的IED,主要是个社区的贡献者或官方技术人员自用,他开发布会…

Redis面试问题(牛客整理版)未完成

文章目录 参考资料出处 缓存过期时间缓存过期删除定期删除 从库处理过期 key持久化过期时间如何确定 缓存淘汰策略LRULFU 缓存模式Cache Aside删除缓存延迟双删 缓存一致性问题解决缓存穿透、击穿和雪崩问题缓存穿透回写特殊值布隆过滤器 缓存击穿Singleflight 缓存雪崩过期时间…