zoukankan      html  css  js  c++  java
  • Java网络编程 -- 网络协议

    OSI网络七层协议

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

    img

    各层主要功能

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

    传输控制协议TCP

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

    img

    TCP握手机制

    建立连接时三次握手:

    img

    断开连接时四次挥手:

    img

    用户数据报协议UDP

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

    img

    TCP和UDP的比较

    TCPUDP
    面向连接 无连接
    提供可靠保证 不可靠
    相对较慢 相对较快
    占用资源多 占用资源少

    Socket编程

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

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

    主要Socket API及其调用过程:

    img

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

  • 相关阅读:
    MySQL8.0.11 组复制配置
    Replication主要配置项
    MySQL最优配置模板( 5.6&5.7转)
    MySQL group replication介绍
    保证复制高可用的一些重要参数
    数据库规约解读
    线上MYSQL同步报错故障处理方法总结
    MySQL 5.7 并行复制
    MySQL的nnodb引擎表数据分区存储
    shell综合
  • 原文地址:https://www.cnblogs.com/coding-diary/p/11354409.html
Copyright © 2011-2022 走看看