4 传输层实验
发表于|更新于|计算机网络实验
|总字数:83|阅读时长:1分钟|浏览量:
传输层实验
- TCP基本分析
- TCP拥塞控制
- UDP分析
- Socket编程
1 TCP基本分析
2 TCP拥塞控制
TCP滑动窗口机制
TCP糊涂窗口综合征Nagle算法
TCP慢启动和拥塞避免
网络拥塞处理
超时与重传
TCP窗口探查
TCP快重传与快恢复
3 UDP分析
4 Socket编程
文章作者: Estom
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!
相关推荐

2019-10-15
3.2 传输层-UDP
UDP1 概述UDP是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。因此如果应用程序使用UDP来实现,则应用程序几乎是直接与IP打交道,UDP只在网络层之上提供了非常有限的服务:进程间数据交付和差错检测。 2 UDP的多路复用和多路分解原理传输层通过socket来提供多路分解和多路复用,并且: 每个socket都由唯一的一个标识符 每个报文段由特殊的字段来指示该报文段所要交付的套接字,源端口号和目的端口号就是这种目的的特殊字段 端口号是16比特的数字,其大小在0到65536之间。0到1023之间的端口号是知名端口号,其使用是受限制的(指的是不能随意使用)。 过程 主机上的进程创建一个socket,并为之申请一个端口号,假设主机host1上进程A创建了一个socket并申请到端口号10000,主机host2上的进程B创建了一个socket并申请到端口号20000 主机host1上的进程A想和主机host2上的进程B通信,因而它从其与之关联的socket中发送一个数据报,并将源端口设置为10000,目的端口设置为2...

2021-09-07
networking
Networking在 libuv 中,网络编程与直接使用 BSD socket 区别不大,有些地方还更简单,概念保持不变的同时,libuv 上所有接口都是非阻塞的。它还提供了很多工具函数,抽象了恼人、啰嗦的底层任务,如使用 BSD socket 结构体设置 socket 、DNS 查找以及调整各种 socket 参数。 在网络I/O中会使用到uv_tcp_t和uv_udp_t。 note 本章中的代码片段仅用于展示 libuv API ,并不是优质代码的范例,常有内存泄露和未关闭的连接。 TCPTCP是面向连接的,字节流协议,因此基于libuv的stream实现。 server服务器端的建立流程如下: 1.12345678910111213141516171819202122232.```uv_tcp_bind```绑定。 3.```uv_listen```建立监听,当有新的连接到来时,激活调用回调函数。 4.```uv_accept```接收链接。 5.使用stream操作来和客户端通信。 #### tcp-echo-server/main.c -...

2019-10-15
3.1 传输层-基本原理
基本原理概述传输层位于网络层和应用层之间,它的目的是为运行在不同主机上的进程之间的通信提供支持。传输层将网络层提供的不同主机之间的通信服务扩展到了运行在不同主机上的进程之间。 主要功能传输层协议为运行在不同主机上的应用之间提供了逻辑通信功能,而网络层则是提供了主机之间的逻辑通信服务。。传输层运行在主机上即端系统上。其基本通信过程为 发送方:传输层接收到来自应用进程的报文,并将其转换为传输层分组,因特网中称为传输层报文段,然后传输层将分组交给网络层,网络层将其交付到目的主机。 接收方:网络层从数据中提取传输层报文段,并将其提交给传输层。 与网络层的关系传输层建立在网路层之上,因而传输层所能提供的服务要受到网络层提供服务的限制,比如假如网络层不能提供带宽和时延保证,那么传输层也无法提供该服务。但是传输层仍能够提供网络层所不能提供的服务,比如IP层是不可靠地服务,但是传输层仍能提供可靠服务。 三种传输层协议 UDP:用户数据报协议,它为应用程序提供了一种不可靠的无连接的服务 TCP:传输控制协议,它为应用程序提供了可靠地面向连接的服务 SCTP:流控制传输协议,它为应用程序提供了可...

2021-09-06
附录13 网络编程
网络编程网络编程概述问题重述 什么是网络编程,解决了那些问题? 网络编程与同步异步、阻塞非阻塞的关系 网络编程的核心机制 网络编程的具体实现 什么是网络编程 既是进程线程通信的一部分 也是设备IO(network IO)的一部分。 当然也是独立的一部分。 解决了两个客户端的通信问题 网络编程与同步异步的关系 没有绝对关系,只是在其中一两个步骤中用到了同步思想或者异步思想。无法用同步异步的方式或者阻塞非阻塞的方式,来区分网络编程的类型。 网络编程的核心机制 这里简单介绍一下网络编程通用的核心的原理和模型。 数据交换和通信方式 socket编程 消息队列模式 网络编程的具体实现 每个场景每种语言都有自己的具体实现方案。可以对应到笔记中的其他模块了解网络编程的具体实现。 Linux 网络编程 C++网络编程库 Java网络编程 Python网络编程 Go网络编程 原理和模型阻塞模式 普通的socket编程,连接建立过程是阻塞的、读写过程也是阻塞的。 阻塞模式:比如调用send时,把要发送的数据放到网络发送缓冲区才返回。如果这时,网络发送缓冲区满了,则需要等待更久的...

2021-03-30
2.4 进程通信
2.4 进程通信 参考文献 https://blog.csdn.net/qq_40989769/article/details/110481553 linux实现多线程多进程的方法有很多。可以在linux系统编程部分好好了解。在这里只引入Linux实现几种进程通信的方式。 0 进程通信的定义进程通信和进程同步的区别 主要的区别在于:进程同步控制多个进程按一定顺序执行;进程通信,实现进程间信息交换。目标是不一样的。 进程通信是一种手段,而进程同步是一种目的。也可以说,为了能够达到进程同步的目的,需要让进程进行通信,传输一些进程同步所需要的信息。 信号量机制既能作为一种同步工具,也能做为一种通信工具。信号量机制作为同步工具是卓有成效的,但作为通信工具,则不够理想,主要表现在下述两方面: 效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲区中取得一个消息; 通信对用户不透明。 进程通信的实现划分 基础进程通信机制。只能传递状态和整数值(控制信息)。特点:传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信...

2022-11-27
05 Java IO网络
网络操作 https://blog.csdn.net/forezp/article/details/88414741 1 网络编程基础Java 中的网络支持: InetAddress:用于表示网络上的硬件资源,即 IP 地址; URL:统一资源定位符; Sockets:使用 TCP 协议实现网络通信; Datagram:使用 UDP 协议实现网络通信。 InetAddress没有公有的构造函数,只能通过静态方法来创建实例。 12InetAddress.getByName(String host);InetAddress.getByAddress(byte[] address); URL可以直接从 URL 中读取字节流数据。 1234567891011121314151617181920public static void main(String[] args) throws IOException { URL url = new URL("http://www.baidu.com"); /* 字节流 */ InputStre...
公告
欢迎参观Estom的小屋




