网络编程 2022-07-09 chapter17

article/2025/9/11 8:19:25

通信协议模型

 

TCP和UDP的区别

1.TCP 和 UDP 都属于传输层的协议

2.TCP 是可靠的, UDP 是不可靠的

3.TCP 有拥塞机制, UDP 没有

    拥塞机制指的是根据当前网络状况动态调整传输速率

4.TCP 有重传机制, UDP 没有

    如果 TCP 协议在传输过程中发生了丢包,TCP会重传保证数据包的完整性

三次握手和四次挥手

1.TCP协议通过三次握手建立连接,通过四次挥手断开连接,UDP协议没有

2.TCP协议如果握手失败,是不会发生数据包的,UDP直接就发

单工、半双工、全双工

1. 单工模式
在单工模式下,发送方可以发送数据,但发送方无法接收数据。这是一种单向通信。
 

 

 

 2. 半双工模式
在半双工模式下,Sender 可以发送数据,也可以接收数据,但一次只能接收一个。这是双向定向通信,但一次一个。

 

 

3. 全双工模式
在全双工模式下,Sender 可以发送数据,也可以同时接收数据。同时是双向的定向通信。
 

 

问题

选择题

1.下列数据传输模式哪个是单工模式()

A.电视广播

B.电话通信

C.对讲机

2.数据传输模式分为单工、半双工和全双工,以下关于全双工的说法正确的是( )

A.全双工是指两个数据之间只能沿单一方向传输数据。

B.全双工是两个数据之间可以实现双向数据传输,但不能同时进行

C.全双工是在两个数据之间可双向并且同时进行数据传输的模式

D.全双工比半双工的通信效率低,且有可能冲突

---------------------------------------------------------------------------------------------------------------------------------

A

C

长连接和短连接

长连接:指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 

短连接:指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。  
       比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。 
          其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。

长连接和短连接的区别:

1、长连接是client方与server方先建立连接,连接建立后不断开,而短连接的Client方与server每进行一次报文收发交易时才进行通讯连接;

2、短连接多用于操作频繁,点对点的通讯,而且长连接数不能太多的情况。

长连接与短连接的操作过程

通常的短连接操作步骤是: 
连接→数据传输→关闭连接;

而长连接通常就是: 
连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接; 

这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态,短连接在没有数据传输时直接关闭就行了

问题

填空

1.数据库的连接用 ( )连接  (长/短)

2.web网站的http服务用 ( )连接  (长/短)

---------------------------------------------------------------------------------------------------------------------------------

数据库的连接用长连接。如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

web网站的http服务一般都是用短连接,因为长连接对于服务器来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一点资源,如果用长连接,而且同时又成千上万的用户,如果每个用户都占用一个连接的话,并发量大,对服务器的压力比较大。

CS架构和BS架构

CS Client - Server 客户端服务器架构模型

    CS 架构的软件需要安装,客户端和服务端都需要更新

BS Browser - Server 浏览器服务器架构模型

    BS 架构的软件不需要安装,只需要有一个浏览器即可,更新的时候只需要有更新服务器端,不需要更新客户端

区别:

硬件环境不同,cs使用专用网络,bs使用广域网;

对安全要求不同,和bs相比,cs对信息安全的控制能力更强;和cs相比,bs对程序架构要求更高;

cs客户端对电脑要求配置较高,bs客户端对电脑配置要求较低,

C/S特点:

1. 对数据的操作速度快。因为CS架构可以将大量的数据从服务器一次性获得后,就可以长时间不同服务器通讯,这样即降低了通讯的时间成本,也大大降低了服务器的压力。无论是服务器端还是客户端的速度都得到了提高。
2. 可以直接操作本地文件。BS架构如果需要访问本地文件是需要花费不少的时间和精力的。
3. 可以提供各种丰富的用户体验

B/S架构的特点

1. 不需要安装客户端,任何地方只有一台可以上网的电脑即可访问服务器。
2. 升级方便,用户只需要更新服务器就可以实现升级。

是可以进行信息分布式处理,B/S架构功能强大,可以降低成本、提高系统性能,B/S架构具有较高的通用性,对应用环境的依赖性较小,开发和维护成本较低。

问题

判断

1.CS架构的软件不需要安装,但更新时,客户端 和 服务器端 都需要更新 ()

2. BS架构的软件更新的时候,只需要更新 客户端,不需要更新 服务器端 ( )

---------------------------------------------------------------------------------------------------------------------------------

×

×

 

服务端

public static void main(String[] args) {ServerSocket server = null;//服务端套接字对象指针try {System.out.println("服务端启动成功,监听8080端口,等待客服端接入");server = new ServerSocket(8080);//初始化服务端套接字对象,监听8080端口//accept()等待客户端的接入(此时线程处于阻塞状态)//当有客户端接入后,返回一个Socket对象Socket socket = server.accept();//获取输入流对象InputStream is= socket.getInputStream();//建立缓冲区数组byte[ ] data = new byte[1024];//从输入流中读取客户端传输过来的数据int n = is.read(data);//把字节数组编码为字符串String str = new String(data,0,n);//打印System.out.println("客户端" + str);OutputStream os = socket.getOutputStream();String back  = "你干嘛,小黑子";os.write(back.getBytes());} catch (IOException e) {e.printStackTrace();}finally{try {server.close();} catch (IOException e) {e.printStackTrace();}}}

客户端

public static void main(String[] args) {Socket socket = null;try {//建立客户端套接字对象,此时发生三次握手socket = new Socket("192.168.198.185",8080);//获取客户端的输出流OutputStream os = socket.getOutputStream();String send = "Hello,大傻逼";os.write(send.getBytes());//获取客户端的输入流InputStream is = socket.getInputStream();byte [] data = new byte[1024];int n = is.read(data);String str = new String(data,0,n);System.out.println("服务端:"+ str);} catch (IOException e) {e.printStackTrace();}finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}}

Socket简介


Socket是应用层与TCP/IP协议族通信中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个facade模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
 

Socket 套接字的底层一定是字节流

可以包装成对象流传输对象

    Message 类 序列化和反序列化

                  String mssage ;//消息内容

                  String name ;// 发送人

                  String date ;// 发送时间

可以包装成二进制流二进制文件


http://chatgpt.dhexx.cn/article/fTZ7BdKh.shtml

相关文章

设置交换机交换速率和双工模式

计算机网络实验的学习笔记,初学小白,有错误请指出 ∩_∩ 设置交换机交换速率和双工模式 环境:Cisco Packet Tracer 交换机2960 用户pc机 配置线(pc端2s 232 交换机Console) (1)设置pc端地址(192.168.1.2) (2)打开终端…

linux全双工管道创建代码,【Linux】管道文件(有名管道、无名管道)

【Linux】管道文件(有名管道、无名管道) 多进程编程的目的就是为了同时完成多个任务。 例如:一个产品,一个软件,需要n个进程同时执行才能完成,而这些进程之间一定是有所联系的。 因此:多进程工作时,进程间需…

RF4463F30半双工模组,伪全双工透传方案(STM32平台)(第一章,环境搭建)

RF4463F30半双工模组,伪全双工透传方案(STM32平台)(第一章,环境搭建) 前言模块介绍基础信息参数配置通讯频段空中速率 配置文件生成头文件修改处1头文件修改处2库函数修改处1库函数修改处2宏定义来源 例程简…

OSI七层网络模型详解!

本文章为沐一Gin的笔记&总结,转载请标明出处。 本文有下一章,如果看完后觉得有帮助就留个言呗,我会继续加油的! OSI七层网络模型 物理层(Physical Layer): 该层为上层协议提供了一个传输…

linux网络编程基础-socket

Socket基础以及相关应用函数 什么是socket socket,也就是我们所谓的套接字,就像插座一样。 IP地址可以在网络环境中唯一的标识一台主机 端口号:在主机当中唯一标识一个进程。 因此,IP地址端口号,就可以在网络环境…

全双工管道

Fork() 函数: 返回0时是子进程,否则,是父进程。 pipe函数 int pipe(int filedes[2]); 返回值:成功,返回0,否则返回-1。参数数组包含pipe使用的两个文件的描述符。fd[0]:读管道,fd[1]:写管道…

TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景(单工,半双工,全双工)

TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景 一、OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧&…

串口通讯理解

机器的通信方式有两种,分别是并行通信与串行通信 并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加&#xff0c…

Linux-C语言-利用有名管道简单实现两个进程间的全双工通信

有名管道特点: 1.有名管道是对无名管道的改进,它可以使互不相关的两个进程互相通信,并且在文件系统中可见,可以通过文件名来找到。 2.半双工的通信方式,进程通过文件IO来操作有名管道。 3.有名管道遵循先进先出原则,不支持lseek()。 2.有名管道的创建 配…

E70_433半双工无线模组,伪全双工方案

E70_433半双工无线模组,伪全双工方案 前言架构设计外侧输入模块外侧输出模块内侧发帧模块内侧接受模块 实现代码通用宏定义代码解析 通用工具函数代码解析 串口输入输出函数代码解析 核心业务代码发送模块代码解析 接收模块代码解析代码流程 结语附带 前言 要搞一个…

计算机双工模式,100M 全双工、100M 半双工、10M全双工几种模式分别测试

1. 首先核实是否有多台电脑同时上网,或是当前电脑有没有在进行P2P下载或在线视频之类比较占用网络带宽的操作,此操作可能导致宽带数据量过大影响稳定性。若存在此情况,请关闭些软件断开些联网设备,减少带宽使用测试。 2. 若有其他…

Linux 查看网卡全双工 还是半双工 以及设置网卡为半双工

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 请问各位兄弟,在Linux中怎么看网卡是全双工工作还是半双工工作?mii-tool Linux:~ # mii…

路由之静态路由配置

一、路由概念 二、路由表的形成 三、路由协议 静态路由 路由器之间的连接需要配置静态路由 首先创建一个局域网,给pc0和pc1分别配置ip地址。 创建三个不同网段的局域网分别给电脑配置ip地址,将三个连接到一个路由上。为路由器与局域网相连的端口&#…

路由器静态路由配置实验

简单配置: 1.连接设备 2.配置PC和服务器的IP地址和网关 3.在路由器配置接口的IP地址(作为网关) 4.实现PC之间的通信 5.分别命名交换机和路由器,并设置时间 6.实现PC1可以telnet和ssh管理SW2和R1 7.配置静态路由实现全网互通 8.开启web服务器,在4台PC上测试是否能访问 实验…

静态路由配置实验

题目: 目录 1、首先进行基础配置 2、创建环回接口并配置IP地址 3、配置静态路由 对r1,要配置除自身连接的3个网段以外的5个网段 对r2,要配置除自身连接的3个网段以外的5个网段,其中3.3.3.0/24网段已配过,则配剩余4个网段 对r…

华为简单静态路由配置

今天通过学习路由交换的知识,学会了配置简单的静态路由,所以我这里介绍一个简单的实 验,在开始之前,我们要先了解一下什么是路由? 路由 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。…

vue 3.0 静态路由配置

今天研究了一下vue3.0的静态路由配置,分享一下。 首先我们现在项目中建立router文件夹,如下图所示: 404文件夹存放404页面,components文件夹存放首页界面,config为设置文件夹,diz存放具体的业务逻辑和界面…

计算机配置静态路由目标,静态路由的配置命令

用户需求: 某学校网络拓扑图如图所示,要求配置静态路由,实现计算机PC1、PC2和PC3互通。 直连路由直连路由出现在路由表的条件 (1)接口为“up/up”状态。 (2)接口已经完成了IP地址的配置。直连路由的检查 静态路由是指由网络管理员手工配置的路由信息,用于定义去往目的网络的…

路由基础(简单的静态路由配置)

目录 一.路由基础 1.路由信息获取方式 2.路由加表前的比较-优先级;度量值 3.路由转发的选择-最长掩码 4.静态路由应用场景及配置 1.路由信息获取方式 路由器依据路由表进行转发,要实现转发功能,路由器需要发现路由,三种常见…

四种静态路由配置方法

拓扑图如下: 接口IP地址如拓扑图所示,配置过程省略,ar1和ar3都开启了dhcp。过程省略。 ar1的路由表: 此时只有直连的1.0和2.0网段的IP。没有3.0网段的。 那怎么有3.0网段的呢?接下来介绍四种方法。 方法一&#xff1a…