2022-08-11 第十小组 石晓荟

网络编程

知识点

网络通信基本模式(常见的通信模式有如下2种形式:Client-Server(CS) 、 Browser/Server(BS)

1.网络通信三要素

IP地址:设备在网络中的地址,是唯一的标识。
IP地址形式:
公网地址、和私有地址(局域网使用)。
192.168. 开头的就是常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用
IP常用命令:
ipconfig:查看本机IP地址
ping IP地址:检查网络是否连通
特殊IP地址:
本机IP: 127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。
IP地址的代表类:
InetAddress类
获取本机IP对象:
public static InetAddress getLocalHost()
判断与该IP地址对象是否互通:
public boolean isReachable(int timeout)
端口:应用程序在设备中唯一的标识。
协议:   数据在网络中传输的规则,常见的协议有UDP协议和TCP协议

2传输层得两个协议

TCP(Transmission Control Protocol) :传输控制协议
UDP(User Datagram Protocol):用户数据报协议
TCP协议特点:
使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。
传输前,采用“三次握手”方式建立连接,所以是可靠的 。
 在连接中可进行大数据量的传输 。
 连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。
TCP协议通信场景:
对信息安全要求较高的场景,例如:文件下载、金融等数据通信。
UDP协议:
UDP是一种无连接、不可靠传输的协议。
将数据源IP、目的地IP和端口封装成数据包,不需要建立连接 
每个数据包的大小限制在64KB内 
发送不管对方是否准备好,接收方收到也不确认,故是不可靠的 
 可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。

UDP协议通信场景
语音通话,视频会话等。

TCP三次握手确立连接:

TCP四次挥手断开连接:

3. Java中的TCP通信

1.TCP发送数据
Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 
Java为客户端提供了Socket类,为服务器端提供了ServerSocket类
2.TCP接收数据
ServerSocket(int port) : 创建绑定到指定端口的服务器套接字

4.URL

1 URL->统一资源定位符
2 协议名://IP地址:端口号/网络程序名/网络资源

5. 用户在浏览器输入一个URL并回车,这个过程涉及到哪些网络协议

浏览器输入一个URL并回车:
 1. 首先进行域名解析,浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表。 若没有,则搜索操作系统的DNS缓存;若没有,则将域名发送至本地域名服务器(递归査询 方式),本地域名服务器査询自己的DNS缓存,查找成功则返回结果,否则,本地的DNS服 务器向根域名服务器发出查询请求,根域名服务器告知该域名的级域名服务器,然后本地服 务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址。DNS服 务器是基于UDP的,因此会用到UDP协议。 2. 得到IP地址以后,浏览器就要与服务器建立一个HTTP连接,因此要用到HTTP协议。HTTP 生成一个GET请求报文。 
3. 接下来到了传输层,选择传输协议,TCP或者UDP,TCP是可靠的传输控制协议,对HTP请 求进行封装,加入了端口号等信息。 
4. 然后到了网络层,通过IP协议将IP地址封装为IP数据报;然后此时会用到ARP协议,主机发 送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确 定目标的物理地址,找到目的MAC地址。 
5. 接下来到了数据链路层,把网络层交下来的IP数据报添加首部和尾部,封装为MAC帧,现在 根据目的mac开始建立TCP连接,三次握手,接收端在收到物理层上交的比特流后,根据首 尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层,然后层层向上传递到应 用层 
6. 服务器响应请求并请求客户端要的资源,传回给客户端。 
7. 断开TCP连接,浏览器对页面进行渲染呈现给客户端。
posted @   Romantic_SXH  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示