java网络协议_Java网络编程 -- 网络协议

OSI网络七层协议

为使不同计算机厂家的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。OSI网络七层协议就是在这个基础上制定出来的,其从最底层开始依次是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

61d1c02e3ccec6dcae369cccd71271b8.png

各层主要功能

物理层:使原始的数据比特流能在物理介质上传输

数据链路层:通过校验,确认和反馈重发等手段,形成稳定的数据链路

网络层:进行路由选择和流量控制(IP协议)

传输层:提供可靠的端口到端口的数据传输服务(TCP/UDP协议)

会话层:负责建立,管理和终止进程之间的会话和数据交换

表示层:负责数据格式转换,数据加密和解密,压缩与解压缩等

应用层:为用户的应用进程提供网络服务

传输控制协议TCP

传输控制协议TCP是网络中一个重要的传输层协议。TCP提供面向连接的,可靠,有序的字节流传输服务。应用程序在使用TCP之前,需要通过三次握手建立TCP连接。连接结束后需要通过四次挥手断开连接。

3b10f745ff068737fd97675bc561ba2b.png

TCP握手机制

建立连接时三次握手:

f9d8898a0c49660018ae30e67e48f0c3.png

断开连接时四次挥手:

d6ef31f9c7d0848de8e4153e2dea7149.png

用户数据报协议UDP

用户数据报协议UDP是网络中一个重要的传输层协议。提供无连接的,不可靠的数据报尽力传输服务。由于UDP无需建立连接,首部开销小,协议格式也更简洁。

dfb48b597c81fd2dcb1d844e874cea14.png

TCP和UDP的比较

TCPUDP

面向连接

无连接

提供可靠保证

不可靠

相对较慢

相对较快

占用资源多

占用资源少

Socket编程

Socket编程是网络中应用最广泛的网络应用编程接口,实现了三种底层协议接口

数据报类型套接字SOCK_DGRAM (面向UDP接口)

流式套接字SOCK_STREAM(面向TCP接口 )

原始套接字SOCK_RAW(面向网络层协议接口IP,ICMP等)

主要Socket API及其调用过程:

7488bb8085efd26f0c5b6bac2f23cc90.png

Socket API核心方法

只能用于服务端的listen(), accept()方法,只能用于客户端的connecty()方法,还有socket(), bind(), send(), recv(), sendTo(), recvFrom(), close()等方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值