网络编程-软件结构和网络通信协议

软件结构

  • c/s结构:全称为Client/Server结构 是指客户端和服务端结构 常见程序由QQ、迅雷等软件

 

  •  B/S结构:全称为Browser/Server结构 是指浏览器和服务器结构 常见浏览器有谷歌、火狐等

 

网络通信协议

网络通信协议:通过计算机网络可以使多台计算机实现连接 位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则 这就好比在道路中行驶的汽车一定要遵守交通规则一样

在计算机网络中 这些连接和通信的规则被称为网络通信协议 它对数据的传输格式、传输速率 传输步骤等做了统一规定 通信双方必须同时才能完成数据交换

TCP/IP协议:传输控制协议/因特网相互协议(Transmission ControlProtocol/InternetProttocol)是Internet最基本、最广泛的协议 它定义了计算机如何连接因特网 已经数据如何它们之间传输

的标准 它的内部包含一系列的用于处理数据通信的协议 并采用了4层的分层模型 每一次都呼叫它的下一次所提供的协议来完成自己的需求

 

 链路层:链路层是用于定义物理传输通道 通常是对某些网络连接设备的驱动协议 例如针对光纤 网线提供的驱动

网络层:网络层是整个TCP/IP协议的核心 它主要用于将传输的数据进行分组 将分组数据发送到目标计算机或者网络

运输层:主要使网络程序进行通信 在进行网络通信时 可以采用TCP协议 也可以采用UDP协议

应用层:主要负责应用程序的协议 例如HTTP协议 FTP协议等

协议分类

通信的协议还是比较复杂的 java.net包中包含的类和接口 它提供低层次的通信细节 我们可以直接使用这些类和接口 来专注于网络程序开发 而不用考虑通信的细节

java.net包中提供了两种常见的网络协议的支持:

UDP:用户数据报协议(User Datagram protocol)UDP是无连接通信协议 即在数据传输时候 数据的发送端和接受端不建立逻辑连接。

使用UDP协议消耗资源小、通信效率高、延迟小,所以通常都会用于音频、视频和普通数据的传输。使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

例如:对方号码不存在,一样可以发送,但是,数据就不安全有可能会丢失

特点:数据被限制在64kb以内 超出这个范围就不能发送了

TCP:传输控制协议(Transmisson Control Protocol) TCP协议是面向连接的通信协议 即传输数据之前 在发送端和接收端建立逻辑连接 然后在传输数据 它提供了两台计算机之间可靠无差错的数据传输

TCP协议传送速度较慢,但传送的数据比较可靠。

由于TCP协议的面向连接特性,它可以保证传输数据的安全性和完整性,所以是一个被广泛采用的协议,例如在下载文件时,如果数据接收不完整,将会导致文件数据丢失而不能被打开,因此,下载文件时必须采用TCP协议

 

 

 在TCP连接中必须要明确客户端与服务器端,先由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”

  • 第一次握手 客户端向服务端发送连接请求 等等服务器确认
  • 第二次握手 服务端向客户端回送一个响应 通知客户端到了连接请求
  • 第三次握手 客户端再出向服务端发送确认信息 确认连接 
posted @   baimingze  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示