当前位置: 首页 > news >正文

[JAVAee]网络通信基础

目录

IP地址

端口号

网络协议

五元组

TCP/IP五层模型


网络互连之间的目的就是为了相互通信,传输数据,是可以不同进程间的基于网络的数据传输.

而IP就可以确定网络通信的双方. 

IP地址

IP地址主要用于定位标识网络主机或其他网络设备的网络地址.(就像快递的收货地址一般)

格式:

IP地址是32位的二进制数,通常被分割为4个8位二进制数即4个字节

11000000.10101000.00010101.00000001

转换成点分十进制为:192.168.21.1

端口号

端口号之前在进程中也有介绍,其是用来定位主机中的进程.进程可以通过绑定一个进程号来发送及接收数据

格式:

端口号是0~65535之间的数字,在网络通信中,进程可以通过绑定一个端口号来发送及接收网络数据.

注意:一个进程可以绑定多个端口号,但一个端口号只能被一个进程绑定.(进程与a通信需要一个端口号,而与b通信又额外的需要一个新的端口号来通信)

网络协议

网络通信上,传输的都是0或1的二进制数据.但网络传输数据的类型是多种多样的,文本,图片,视频或音频.这时候网络通信就需要协议来规定双方的数据格式

在网络通信上的网络设备都必须共同遵守一组约定,规则.只有遵守了这些协议,计算机之间才能相互通信交流.

网络协议通常由三要素构成:

  • 语法:数据的结构或格式
  • 语义:设备需要发出的信息或需要完成的任务
  • 时序:任务实现顺序的说明

协议最终体现在网络上传输的数据包的格式

世界上有多种操作系统,多种计算机的生产商还有很多的网络设备硬件.协议的出现,就算为了解决他们之间的参差,规定了一定的标准方便网络的通信.

五元组

在TCP/IP协议中,使用了五元组来标识一个网络通信

1. 源IP:标识源主机
2. 源端口号:标识源主机中该次通信发送数据的进程
3. 目的IP:标识目的主机
4. 目的端口号:标识目的主机中该次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双方约定的数据格式

TCP/IP五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  • 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层
     

http://www.lryc.cn/news/113640.html

相关文章:

  • 【HDFS】BlockManager#checkRedundancy方法详解
  • c++ 拷贝构造
  • MISRA 2012学习笔记(1)-Directives
  • 升级node版本后vue2的项目node-sass、sass-loader安装报错(14.x升级到16.x)
  • 深入理解CSS选择器:选择正确的方式掌控样式与布局
  • qt设置控件的风格样式
  • 简单易懂的Transformer学习笔记
  • C语言经典小游戏之三子棋(超详解释+源码)
  • 宝塔Linux面板点击SSL闪退打不开?怎么解决?
  • Problem: 6953. 判断是否能拆分数组
  • MobiSys 2023 | 多用户心跳监测的双重成形声学感知
  • Netty:ChannelInitializer添加到ChannelPipeline完成任务以后会自动删除自己
  • 【VUE】项目本地开启https访问模式(vite4)
  • 【状态估计】一维粒子滤波研究(Matlab代码实现)
  • 设计模式-迭代器模式在Java中使用示例
  • Maven入职学习
  • 【多音音频测试信号】具有指定采样率和样本数的多音信号,生成多音信号的相位降低波峰因数研究(Matlab代码实现)
  • LeetCode150道面试经典题-删除有序数组中的重复项(简单)
  • 人大金仓数据库Docker部署
  • Leetcode-每日一题【剑指 Offer 07. 重建二叉树】
  • Shell编程快速入门
  • wpf 3d 坐标系和基本三角形复习
  • 如何安全变更亚马逊收款账户?
  • 大数据面试题:Hadoop中的几个进程和作用
  • 题解:ABC276D - Divide by 2 or 3
  • 后台管理系统
  • C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)
  • 静态库和动态库
  • 用于Voronoi图构建的Fortune算法的C++实现
  • 笔记汇总 | 斯坦福 CS229 机器学习