【Java 网络编程】网络相关概念
文章目录
- I 报文段
- II 传输协议
- III MAC 地址
- IV IP 地址
- V IPv4 地址
- VI IPv6 地址
- VII 端口
- VIII 服务器
I 报文段
1. 报文段作用 : TCP/IP 协议 , 信息在网络传输过程中 , 使用报文段作为导航 ; 其可以查询各个路由网段 , IP 地址 , 交换协议等 IP 数据包 ; 报文段负责 TCP/IP 协议的数据包的路由导航功能 ;
2. 不断封装 : 报文在传输过程中 , 不是一成不变的 , 而是不断地在封装或者拆分成数据组 , 数据包 , 数据帧进行传输 ;
3. 封装方式 ( 报文头 ) : 报文封装就是添加报文头 , 报文头包含控制信息组, 放在数据的首部 ;
4. 传输示例 : 信息从 A 传输到 B , 不是简单的二进制数据传输 , 首先要对数据进行报文封装 , 加上对应的报文头 , 然后将封装后的信息传给 B , B 收到报文后 , 解析该信息 , 获取到封装的信息 ;
II 传输协议
1. 约定 : 传输协议是一种约定 , 网络传输的健壮性 , 稳定性 , 主要是靠协议的约定实现的 ;
2. 协议作用 : A 传输数据给 B , B 能识别 , 反之 A 也能识别 B 传输给 A 的数据 ; 这样 A 和 B 之间就需要约定一个协议 , 才能实现数据的传输识别 ;
III MAC 地址
1. MAC 简介 : MAC 是 Media Access Control 的缩写 , 媒体控制访问 , 又叫物理地址 ; 所有的网络设备都有 MAC 地址 , 其作用是在网络上标识设备物理地址 , 相当于设备的身份信息 ;
2. IP 地址与 MAC 地址 : 有 IP 地址的前提是有 MAC 地址 , 网络中为物理设备分配一个临时的 IP 地址 , IP 地址可以改变 , MAC 地址无法修改 ;
IV IP 地址
1. IP 是 Internet Protocol Address 缩写 , 互联网协议地址 ; IP 地址是分配给硬件设备的临时身份标签 , 这些设备在网络上行使用网际协议 ( Internet Protocol ) ;
2. IP 地址分类 : 分为 IPv4 和 IPv6 两类 ;
V IPv4 地址
1. IPv4 地址表示 : IP 地址由 32 位二进制数组成 , 以 192.168.1.1 的形式出现 , 每个数字取值范围 0 ~ 255 ;
2. IPv4 分类 : IPv4 地址分为 A, B, C, D, E 五类 , E 类时保留地址 , 其总数量只有 42 亿个 , 在 2011 年时已经分配完毕 ;
3. 直接广播地址 : 1.1.1.1 , 如果想改地址发送 UDP 数据包 , 在理论上会向整个网络所有设备发送 UDP 数据 ; 实际上会被局域网防火墙拦截 ;
4. 受限广播地址 : 255.255.255.255 , 当前局域网的广播地址 , 如果 UDP 给该地址发送信息 , 会将信息发给局域网的所有设备 ;
VI IPv6 地址
IPv6 表示方式 : IPv6 有 128 位长度 , 其采用 32 个 16进制数组成 ;
IPv6 组成 : 其由 2 部分组成 , ① 网络前缀 ( 64 位 ) , ② 主机地址 ( 64 位 ) , 主机地址根据 MAC 地址自动生成 , 称为 EUI-64 ;
IPv6 示例 : 2001:0DB8:0000:0023:0008:0800:200C:417A ;
转换关系 : IPv4 可以转为 IPv6 , IPv6 不一定能转为 IPv4 ;
VII 端口
1. 将 IP 地址当做房子 , 那么端口就是其中的窗户 , 不同的窗户后有不同的人 , 与外界通过该窗户进行交流 ;
2. 特殊端口 : 0 ~ 1023 号端口 , 1024 ~ 49151 号端口 ; 注意有些端口号是特殊端口是不能占用的 ;
3. 动态端口 : 49152 ~ 65535 号端口 , 这部分端口号可以随意使用 , 客户端连接到服务器后 , 客户端分配的端口号属于该端口号 ;
4. 传输层的 TCP/IP 协议是计算机之间通信的基础 , 不同的协议使用不同的端口号 ;
5. 设备端口号与连接数量 : 端口号有 65536 个 , 但是指的是一个 IP 地址可以有 65536 个端口号 , 如果一台电脑有 2 块网卡 , 那么就会有 65536 x 2 个端口号 , 可以建立更多的连接 ;
VIII 服务器
局域网之间的设备是无法直接进行通信的 , 其 IP 地址和端口号都是局域网内网的地址和端口号 , 互相之间是不能访问的 , 两个设备必须通过服务器进行中转 , 才能进行通信 ;
【Java 网络编程】网络相关概念相关推荐
- java 编程原理_Java网络编程 -- 网络编程基础原理
Hello,今天记录下 Java网络编程 --> 网络编程基础原理. 一起学习,一起进步.继续沉淀,慢慢强大.希望这文章对您有帮助.若有写的不好的地方,欢迎评论给建议哈! 初写博客不久,我是杨展 ...
- Java网络编程(网络基础(IP端口号网络通信协议)、TCP编程、UDP编程和URL编程原理以及常用方法的实例)
网络编程 网络基础概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等 ...
- 深入分析websocket协议,从3个方面设计网络应用层协议丨网络编程|网络IO|epoll|socket|网络协议丨c/c++linux服务器开发
深入分析websocket协议,从3个方面设计网络应用层协议 视频讲解如下: 深入分析websocket协议,从3个方面设计网络应用层协议丨网络编程|网络IO|epoll|socket|网络协议丨c/ ...
- epoll原理剖析以及reactor模型应用丨网络编程|网络IO|select|poll|socket|reactor多核实现丨c/c++linux服务器开发
epoll原理剖析以及reactor模型应用 视频讲解如下,点击观看: epoll原理剖析以及reactor模型应用丨网络编程|网络IO|select|poll|socket|reactor多核实现丨 ...
- 带你了解Java高级编程-----网络编程
文章目录 一.前言 二.网络通信要素 要素一:IP和端口号 要素二:网络协议 三.TCP网络编程 四.UDP网络编程 五.URL编程 一.前言 网络编程是指编写运行在多个设备(计算机)的程序,这些设备 ...
- Java网络编程--网络基础
文章目录 网络协议 常用网络协议族(簇)(protocol) 端口(port) 常见知名端口 动态端口 IP地址 IP地址分类 IPv4的分类 IPv6 子网掩码 网络协议 是为计算机网络中进行数据交 ...
- 网络编程-网络分层的意义
网络 我们生活在一个网络无处不在的一个虚拟世界中,网络中的每一个设备都是一个节点.大多是我们的计算机,但是他还可以连接其他设备,例如打印机,路由器,网关,你的手机,智能家居等.我们可以使用java与计 ...
- python 网络编程 异步io_python网络编程——网络IO模型
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking IO):默认创建的s ...
- socket网络编程——网络编程接口
网络编程接口 #include <sys/types.h> #include <sys/socket.h>/* socket()创建套接字,成功返回套接字的文件描述符,失败返回 ...
- 网络编程—网络基础概览、socket,TCP/UDP协议
网络基础概览 socket概览 socket模块-TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网 ...
最新文章
- 设置系统的viewController modal动画样式
- python3 urllib代理_Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
- python变量类型-【干货】Python基础语法之变量类型
- ASP.NET Core中使用GraphQL - 第七章 Mutation
- 商汤科技-数据运维工程师-提前批笔试题目汇总
- mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?
- 图片添加图片水印和文字水印
- 小程序 | 微信小程序多图上传(点击上传、可修改删除与放大回显)
- 王不可以怒而兴师,将不可以愠而致战
- Spring Cloud Bus消息总线(学习总结)
- 分布式期末复习总结(林子雨老师)
- y = mapminmax(‘apply‘,x,ps)中各个参数是什么意思呢?
- python 读取合并单元格_python 读取合并单元格
- Kubernetes上基于longhorn和statefulsets的pv空间扩展
- 读书笔记(第五周)之魔方的创新
- 大数据实验室建设方案
- Stimulsoft Reports如何进行数据连接
- 读博,每天要不要工作十二小时
- python如何返回一个列表_python如何返回元组,列表或字典的?
- android textview 文字居中无效,android – 不能垂直居中textview的文本
热门文章
- mysql 创建库设置中文
- sed编辑器: 非交互
- 在CentOS7上部署.net core 控制台应用程序部署为后台服务
- 201521123011 《java程序设计》 第9周学习总结
- web设计页面跳转的方法
- UVa 11107 (后缀数组 二分) Life Forms
- Hessian(C#)介绍及使用说明
- SpringCloud学习(七)高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
- Sublime Text2 常用快捷键
- [原创]Android Monkey测试工具使用介绍