专栏首页Coding DiaryJava网络编程--网络协议

Java网络编程--网络协议

OSI网络七层协议

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

各层主要功能

物理层:使原始的数据比特流能在物理介质上传输 数据链路层:通过校验,确认和反馈重发等手段,形成稳定的数据链路 网络层:进行路由选择和流量控制(IP协议) 传输层:提供可靠的端口到端口的数据传输服务(TCP/UDP协议) 会话层:负责建立,管理和终止进程之间的会话和数据交换 表示层:负责数据格式转换,数据加密和解密,压缩与解压缩等 应用层:为用户的应用进程提供网络服务

传输控制协议TCP

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

TCP握手机制

建立连接时三次握手:

断开连接时四次挥手:

用户数据报协议UDP

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

TCP和UDP的比较

Socket编程

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

  • 数据报类型套接字SOCK_DGRAM (面向UDP接口)
  • 流式套接字SOCK_STREAM(面向TCP接口 )
  • 原始套接字SOCK_RAW(面向网络层协议接口IP,ICMP等)

主要Socket API及其调用过程:

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

本文分享自微信公众号 - Coding Diary(gh_7e1f05090980),作者:Joey

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CPU缓存和内存屏障

    为了提高程序的运行性能, 现代CPU在很多方面对程序进行了优化 例如: CPU高速缓存, 尽可能的避免处理器访问主内存的时间开销, 处理器大多会利用缓存以提高性...

    CodingDiray
  • ActiveMQ支持的消息协议

    ActiveMQ支持的协议:AUTO,OpenWire,AMQP,Stomp,MQTT等 ActiveMQ支持的基础传输方式:VM,TCP,SSL,UDP,Pe...

    CodingDiray
  • Docker常用命令

    Docker中最核心最基本的概念就是镜像(Image),容器(Container),以及仓库(Repository),其常用的操作命令也就是围绕这三个进行。

    CodingDiray
  • UDP 协议的那点事儿

    最近在回顾计算机网络的知识,以前上课没有认真学,只记住了几个高大上的术语,所以趁着这次回顾,把学到的知识用博客的形式记录下来,一来加深自己的印象,二来希望让你对...

    乔戈里
  • windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况

    2.查询指定的端口被占用的情况   上图中本地地址一列中的冒号:  后面的数字就是端口号

    noteless
  • 黑盒模型实际上比逻辑回归更具可解释性

    如何让复杂的模型具备可解释性,SHAP值是一个很好的工具,但是SHAP值不是很好理解,如果能将SHAP值转化为对概率的影响,看起来就很舒服了。先前阿Sam也写过...

    Sam Gor
  • Linux定期备份数据

    工作中经常会碰到对数据进行备份的需求,常用的数据同步命令是rsync。有时候需要定期备份数据,每次手动备份数据太麻烦,因此通常会设置一个定时任务来执行数据备份,...

    Tyan
  • TCP和UDP的区别

    TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还...

    葆宁
  • 打开Android Studio报错“Error running ***: Please select Android SDK”

    今天打开Android Studio编译项目正常,但在执行Run app的时候莫名其妙弹出配置对话框,一看SDK配置没什么问题,就直接单击“Run”按钮,谁料下...

    用户4464237
  • 深度解密Go语言之反射

    反射和 Interface 息息相关,而 Interface 是我们上一篇文章的内容。在开始正文前,和大家说点题外话。

    梦醒人间

扫码关注云+社区

领取腾讯云代金券