计算机网络自学笔记 传输层

本文解析了TCP连接建立的基本过程,包括三次握手的具体步骤,并通过一个Telnet会话实例详细说明了序号与确认号的工作机制。

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:以下是本篇文章正文内容,下面案例可供参考

一、1( 3分 )

简析TCP连接建立的基本过程。

  1. 客户首先向服务器发送一个特殊的TCP报文段

  2. 服务器用另一个特殊的TCP报文段来响应

  3. 客户再用第三个特殊的报文段作为响应

前两个报文段不承载“有效载荷”,也就是不包含应用层数据
而第三个报文段可以承载有效载荷

二、2( 2分 )

2( 2分 )
假设主机A发起一个与服务器B的Telnet会话。现在用户输入了一个字符“C”,如果客户机和服务器的起始序号分别是42和79。因此,客户机发送的第一个报文段的序号为42,服务器发送的第一个报文段的序号为79。

请问服务器在收到序号为42的报文段后,在其响应报文段79中的确认号字段中该填入什么数字?并解释为什么。


在这里插入图片描述

ACK=43

  1. 首先 客户和服务器的起始序号分别是42和79.

    一个报文段的序号 就是 该报文段 数据字段 首字节的序号

    因此,客户发送的第一个报文段的序号为42

    服务器发送的第一个报文段的序号为79

       确认号就是主机正在等待的数据的下一个字节序号
    

    另外,由于客户还没有接受来自服务器的任何数据,因此该报文段中的确认号字段中是79


  1. 第二个报文段由服务器发往客户。两个目的

    收到数据,提供确认

       ACK=43 已成功收到42以及之前的所有字节, 正在等待字节43
    

    回显数据

       数据字段data=‘C’ (填入C的ASCII码
    

Seq=79
是该TCP连接上从服务器到客户的数据流的起始序号,也正是服务器要发送的第一个字节的数据

  1. 第三个报文段是从客户发往服务器的。它的唯一目的是确认已从服务器收到的数据。(前面讲过,第二个报文段中包含的数据是字符C,是从服务器到客户的)
    该报文段的数据字段为空(即确认信息没有被任何从客户到服务器的数据所捎带)。
    该报文段的确认号字段填入的是80,因为客户已经收到了字节流中序号为79及以前的字节,它现在正等待着字节80的出现。
    即使该报文段里没有数据仍有序号这是因为TCP存在序号字段,报文段需要填入某个序号。
### 计算机网络传输层学习笔记 #### 一、传输层的功能概述 传输层位于OSI七层模型中的第四层,主要负责源端到目的端的可靠通信。该层次利用网络层提供的服务为上层应用层提供两种类型的服务:面向连接的服务和无连接的服务[^2]。 #### 二、复用与分用机制 在实际应用场景中,多个应用程序可以通过同一台设备上的单个物理链路发送数据流。例如,微信与QQ发送的数据最终会使用相同的传输层协议进行传输(即复用过程)。当这些数据到达接收端时,则会在传输层被解析并分配至对应的应用程序处理(即分用操作)[^1]。 #### 三、端口号的作用及其特性 为了区分来自不同应用程序的数据包,每条消息都携带有一个特定的目的端口编号以及源端口编号。值得注意的是,端口号仅具有本地含义;即使两台机器拥有相同数值的开放端口也不意味着它们之间存在关联关系——因为各自所对应的可能是完全不同的进程实例[^3]。 #### 四、TCP快速重传算法原理 假设在一个基于TCP协议建立起来的连接里出现了连续三个针对某个已发出但未确认序列号X=1的数据段重复应答情况发生时,这通常暗示着下一个按序应当到来却迟迟不见踪影的那个片段很可能已经丢失在网络之中了。此时发送者应该立即重新传送那个疑似遗失的部分而不是等待定时器超时期满再做动作,这就是所谓的“快速重传”策略的一部分实现逻辑[^4]。 #### 五、从IP地址到MAC再到端口的过程描述 当需要向某台远程主机传递信息的时候,先通过路由选择算法依据目标节点的IPv4/v6标识符来决定最佳路径直至抵达对方所在局域网内部;之后借助ARP请求获取其硬件层面的身份标签(即MAC Address),从而完成最后一公里的确切位置锁定工作;最后一步则是依靠事先协商好的端口号把载荷精准投递给指定的应用级实体加以进一步处置[^5]。 ```python def find_target_application(ip_address, mac_address, port_number): """ Simulate the process of finding a target application based on IP address, MAC address and port number. Args: ip_address (str): The destination IP address. mac_address (str): The corresponding MAC address within local network. port_number (int): Port number associated with specific service/application. Returns: str: Description of found application or error message if not successful. """ try: # Step simulation for demonstration purposes only route_to_network = f"Routing to {ip_address}'s network..." locate_host = f"Locating host via ARP request using {mac_address}..." deliver_payload = f"Delivering payload to application listening at port {port_number}." return "\n".join([route_to_network, locate_host, deliver_payload]) except Exception as e: return f"Failed to reach target application due to an unexpected issue: {e}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值