java网络编程

网络编程基础

1、常用的网络拓扑结构:

星型网络、总线网络、环线网络、树形网络、星型环线网络

2、通信协议的组成

通信协议通常由3部分组成:

语义部分:用于决定通信双方对话类型

语法部分:用于决定通信双方对话格式

变换规则:用于决定通信双方的应答关系

3、OSI模型和TCP/IP模型

OSI:开放系统互联参考模型

应用层

表示层

会话层

传输层

网络层

数据链路层

TCP/IP:传输控制协议

应用层

传输层

网络层

物理数据链路层

4、IP地址和端口号

IP地址用于唯一的标识网络中的一个通信实体,这个通信实体即可以是一台主机,也可以是一台打印机,或者是路由器的某个端口。

(IPv4)逻辑地址的定义:

一共有32位二进制,分成4部分,每部分8位。

0000 0000 - 1111 1111 <->  0 - 255 所以ip地址会写成例如:10.20.158.75这种形式

逻辑地址具有层次结构,分为网络地址和主机地址

为了标识不同规模的网络,将IPV4逻辑地址进行了分类:

A类:只有第一段表示网络地址,后面都表示主机地址

8位网络地址,24位主机地址,可以容纳2^24-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.0.0.0

0 000 0001 - 0 111 1111 <-> 1 - 127

一共有127个A类地址,但127用于回环。所以有效的A类地址:1-126

B类:前两段表示网络地址,后两段表示主机地址

16位网络地址,16位主机地址,可以容纳2^16-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.255.0.0

10 00 0001 - 10 11 1111 <-> 128 - 191

一共有64个B类地址(这只是从第一段来分类),真正B类地址有2^14个

C类:前三段表示网络地址,后一段表示主机地址

24位网络地址,8位主机地址,可以容纳2^8-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.255.255.0

110 0 0001 - 110 1 1111 <->192 - 223

一共有32个C类地址(这只是从第一段来分类),真正的C类地址有2^21个

D类:1110 0000 - 1110 1111 <-> 224 - 239

E类:余下的都是E类

ICANN:国际互联网地址分配机构(注册域名和地址分配机构)

ICANN预留出了一部分地址,专门用于本地使用,不能用于连互联网,这类地址称为私有地址

私有地址:(作为原地址可以,目标地址不行,不能在互联网通信)

A类:10.0.0.0/8

B类:172.16.0.0/16 -172.31.0.0/16(16个B类网)

C类:192.168.0.0/24 -192.168.255.0/24(256个C类网)

IP地址用于唯一的标识网络中的一个通信实体,但一个通信实体可以有多个通信程序同时提供网络服务,此时还需要用到端口

端口是一个16位的整数,用于表示数据交给哪个通信程序处理。端口就是应用程序与外界交流的出入口,它是一种抽象的软件接口,包括一些数据结构和I/O(基本输入输出)缓冲区

不同的应用程序处理不同端口上的数据,端口号可以从0到65535。通常分为3类

1)公认端口:0 - 1023 ,他们紧密绑定一些特定的服务

2)注册端口:1024 - 49151 ,他们松散的绑定一些服务,应用程序通常应该使用这个范围内的端口

3)动态和/或私有端口:49152 - 65535 这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口

java网络编程基础——网络基础的更多相关文章

  1. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分   老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...

  2. Python网络编程之网络基础

    Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...

  3. UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数

    UNIX环境高级编程——TCP/IP网络编程   常用网络信息检索函数 gethostname()   getppername()   getsockname()   gethostbyname() ...

  4. JAVA基础——网络编程之网络链接

    一.网络编程基本概念 1.OSI与TCP/IP体系模型 2.IP和端口 解决了文章最开始提到的定位的问题. IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证):网络编程是和远程计算 ...

  5. 网络编程入坑基础-BIO总结

    IO总结 前提 参考资料: <Java I/O> -- 这本书没有翻译版,需要自己啃一下. <Java I/O>这本书主要介绍了IO和NIO的相关API使用,但是NIO部分并不 ...

  6. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u ...

  7. 总结day23 ---- 网络编程,以及计算机基础概念

    计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  8. 网络编程中TCP基础巩固以及Linux打开的文件过多文件句柄的总结

    1.TCP连接(短链接和长连接) 什么是TCP连接?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 当网络通信 ...

  9. UNIX网络编程——揭开网络编程常见API的面纱【上】

    Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作. 1.socket(famil ...

  10. Python 网络编程之网络协议(未完待续)

    一:网络编程从两大架构开始 1.网络开发的两大架构 c/s 架构 : client  server B/S 架构 : Brower  server (1)bs 和 cs 架构之间的关系? (2)哪一种 ...

随机推荐

  1. Harmony生命周期

    Harmony生命周期 系统管理或用户操作等行为,均会引起Page实例在其生命周期的不同状态之间进行转换.Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放 ...

  2. Ascend Pytorch算子适配层开发

    Ascend Pytorch算子适配层开发 适配方法 找到和PyTorch算子功能对应的NPU TBE算子,根据算子功能计算出输出Tensor的size,再根据TBE算子原型构造对应的input/ou ...

  3. cuDNN 功能模块解析

    Abstract 本cuDNN 8.0.4开发人员指南概述了cuDNN功能,如可自定义的数据布局.支持灵活的dimension ordering,striding,4D张量的子区域,这些张量用作其所有 ...

  4. fiddler修改请求包和返回包

    设置好过滤后,找到需要修改的包,按如下步骤进行包的数据修改1.设置"禁止上传"(禁止XX为本人自己理解,专业术语不记得了,高手可留言笔者重新修订博文),打上断点,如下标志就是在请求 ...

  5. 练习(time.tick定时器监控数据库)

    设立个定时器,监控数据库里fb_state(发布状态),并将数据库中一条记录的开始时间与截止时间和当前时间进行比对.若当前时间在开始时间与结束时间之间,则将发布状态设为1,否则为0. 同时,将此段代码 ...

  6. 十六、.net core(.NET 6)搭建基于Redis的Hangfire定时器

    搭建基于Redis的Hangfire定时器 Hangfire的定时配置信息会自动生成在指定到数据库内,包括关系型数据库或非关系型数据库内.目前为止,它在Redis.Oracle上面,可以支持最短15秒 ...

  7. 你,确定了解Java的String字符串?

    本文将描述JDK6中String.intern()是如何实现的,以及在JDK7和JDK8中对字符串池化技术做了哪些改变. String池化介绍 String池化就是把一些值相同,但是标识符不同的字符串 ...

  8. 散列数据结构以及在HashMap中的应用

    1. 为什么需要散列表? 对于线性表和链表而言,访问表中的元素,时间复杂度均为O(n).即便是通过树结构存储数据,时间复杂度也为O(logn).那么有没有一种方式可以将这个时间复杂度降为O(1)呢?当 ...

  9. 使用echarts时,鼠标首次移入屏幕会闪动,全屏会出现滚动条

    原因: 在echarts图表中出现tooltip时,画布的父标签(即:echarts.init()的标签)的有时宽高都会发生变化,导致相对布局的div可能大小发生变化(画布大小却不变),导致页面闪动. ...

  10. VLAN协议与三层交换机 (Access/Trubk/Hrbrid)

    VLAN协议与三层交换机(Access/Trunk/Hybrid) 目录 一.VLAN概述 1.1.分割广播域 1.2.VLAN的优势 1.3.静态VLAN 二.Trunk的作用 2.1.概念 2.2 ...