网络原理(Java网络编程)

news2024/7/4 5:35:36

1.局域网和广域网

  • 局域网LAN: 即 Local Area Network,简称LAN.
    • 局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的.
    • 局域网一般可以由交换机或路由器组建.
  • 广域网WAN: 即 Wide Area Network,简称WAN.
    • 广域网是将多个局域网连接起来(可以通过路由器),在物理上组成很大范围的网络.又称外网;广域网内部的局域网都属于其子网.
    • 广域网一般由路由器组建.

2.IP地址

IP地址主要用于标识网络主机,其他网络设备(如路由器)的网络地址.简单说: IP地址用于定位主机.

IP地址是一个32位的二进制数,通常被分割为4个"8位二进制数"(也就是4个字节),如:01100100.00000100.00000101.00000110.(一般用点分十进制表示,如前面的四个字节就是:100.4.5.6)

2.1.特殊IP

127.*的IP地址用于本机环回(loop back)测试, 通常环回IP是127.0.0.1

3.端口号

端口号用于描述某个应用程序. 一般是两个字节的无符号整数,范围是 是0~65535. 需要注意的是,两个不同的进程不能同一时间绑定同一个端口号.但是一个进程可以绑定多个端口号.

4.网络协议

4.1.协议分层

网络协议整体的规模很大,整体实现就很复杂,更好的解决方式就是把一个大的复杂的协议,拆成多个小的更简单的协议,每个协议负责一部分工作

4.1.1.协议分层的优点

  • 每层协议不需要理解其它层协议的细节(更好的做到了封装)
  • 把对应层的协议替换成其他协议不会对整体产生影响(更好的解耦合)

4.1.2.OSI七层模型

在这里插入图片描述

4.1.3.TCP/IP五层(或四层)模型

在这里插入图片描述

物理层我们考虑的比较少.因此很多时候也可以称为 TCP/IP四层模型.

在这里插入图片描述

4.2.网络分层:封装和分用

  • 封装
    • 应用层协议构造出一个应用层的数据报文(各个应用协议根据应用自己约定). 应用层协议调用操作系统提供的API(称为socket API),把应用层的数据,交给传输层
    • 传输层(操作系统内核)根据刚才传过来的数据,基于当前使用的传输层协议,来构造出一个传输层的协议报文(UDP/TCP),接下来就会把这个传输层的数据报,交给网络层.
      • TCP为例:TCP数据报 = TCP报头 + 数据载荷(Payload,也就是完整的应用层数据)
    • 网络层拿到完整的传输层数据报,再根据当前使用的网络层协议,再次进行封装.把TCP数据报构造成IP数据报(IP协议报头+TCP数据报).然后当前的网络层协议就会把这个IP数据报交给数据链路层
    • 数据链路层把得到的数据报根据数据链路层协议构造成一个数据链路层的数据报–“以太网数据帧”(帧头 + IP数据报 + 帧尾).把数据报给物理层
  • 物理层传输给下一个节点
    • 如果是交换机的话:交换机先分用数据解析到数据链路层,更新以太网数据帧的帧头里的地址,然后再重新封装,并进行转发
    • 如果是路由器的话:路由器先分用数据到网络层,拿到IP地址后,进行下一阶段的路径规划,然后重新往下封装并进行转发
  • 分用
    • 下一个节点的物理层把数据交给数据链路层
    • 数据链路层对这个数据进行解析,去掉帧头和帧尾,取出IP数据报,交给网络层协议
    • 网络层协议(IP协议)又会对这个数据进行解析,去掉IP协议报头,取出里面的TCP数据报,交给传输层
    • 传输层协议(TCP协议)又会对这个数据进行解析,去掉TCP报头,取出里面的应用层报文,交给应用层
    • 应用层就会调用 socket API 从内核中读取到这个应用层数据报,再按照应用层协议进行解析,根据解析执行下一步操作.

封装过程如图. 分用过程正好与封装过程相反.
在这里插入图片描述

5.网络编程:套接字

网络套接字,是操作系统给应用程序提供的一组API(叫做Socket API). Socket套接字主要针对传输层协议划分为三类.

  1. TCP
  2. UDP
  3. 原始套接字

这里我们介绍TCP和UDP套接字.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【28-业务开发-基础业务-属性管理-SKU和SPU基本概念-SKU和SPU关联关系-属性实体之间的关联关系-批量菜单创建】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

力扣(LeetCode)32. 最长有效括号(C++)

栈模拟 合法的括号序列满足两条性质: 1.左括号数等于右括号数 2.任意前缀里,左括号数大于等于右括号数。 括号匹配和栈很般配,遇到左括号,下标入栈,遇到右括号,弹栈匹配。 这题的前缀里有两种不合法&…

【LSTM回归预测】attention机制LSTM时间序列回归预测【含Matlab源码 1992期】

⛄一、attention机制LSTM预测 1 总体框架 数字货币预测模型分为两部分,由LSTM模块和Attention模块组成。 2 LSTM模块 长短期记忆网络(LSTM)是一种特殊的递归神经网络(RNN)模型,是为了解决RNN模型梯度消失…

【Codeforces Round #835 (Div. 4)】A——G题解

文章目录A Medium Number题意思路代码B Atillas Favorite Problem题意思路代码C Advantage题意思路代码D Challenging Valleys题意思路代码E Binary Inversions题意思路代码F Quests题意思路代码G SlavicGs Favorite Problem题意思路代码A Medium Number 题意 三个数&#xf…

窗口-视口转换(详细)

在QPainter中,绘制图像使用逻辑坐标绘制,然后再转化为绘图设备的物理坐标。 窗口(window):表示逻辑坐标下的相同矩形视口(viewport):表示物理坐标下的指定的一个任意矩形默认情况&am…

中国互联网大会天翼云展区大揭秘!

11月15日,由工业和信息化部、深圳市人民政府主办,中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022(第二十一届)中国互联网大会在深圳开幕。本届大会以“发展数字经济 促进数字文明”为主题,聚…

单商户商城系统功能拆解34—应用中心—分销应用

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

在IDEA中搭建Spring5.2.x版本源码(~附带完整过程和图示~)

1.开发环境 JDK8IntelliJ IDEA 2019.1.4 gradle 5.6.4git 2.33.0 2.操作步骤 下载并安装git 进入https://git-scm.com/downloads,下载对应操作系统的git版本一直点击next安装即可记得配置环境变量 获取Spring源码 使用clone的方式将源码拉取到本地,方便…

Java递归查询树形结构(详解)

一.数据准备 数据库表结构如下所示, INSERT INTO jg_user.com_type(type_id, parent_id, type_name) VALUES (1, 0, 合伙企业); INSERT INTO jg_user.com_type(type_id, parent_id, type_name) VALUES (2, 0, 有限公司); INSERT INTO jg_user.com_type(type_id, p…

力扣(LeetCode)878. 第 N 个神奇数字(C++)

二分查找数论 数论知识——辗转相除法、容斥原理。 辗转相除求最大公约数&#xff0c;两数相乘除以最大公约数&#xff0c;就是最小公倍数。 容斥原理求最多不重复元素&#xff0c;最大不重复面积。 <小学数奥> 从数据范围里&#xff0c;用容斥原理找 a/ba/ba/b 的倍数个…

Pytorch 下 TensorboardX 使用

这里引用一下在其他地方看到的一些话&#xff1a; tensorboard做为Tensorflow中强大的可视化工具&#xff0c;已经被普遍使用。 但针对其余框架&#xff0c;例如Pytorch&#xff0c;以前一直没有这么好的可视化工具可用&#xff0c;PyTorch框架自己的可视化工具是Visdom&…

实验九 数据微积分与方程数值求解(matlab)

实验九 数据微积分与方程数值求解 1.1实验目的 1.2实验内容 1.3流程图 1.4程序清单 1.5运行结果及分析 1.6实验的收获与体会 1.1实验目的 1&#xff0c;掌握求数值导数和数值积分的方法&#xff1b; 2&#xff0c;掌握代数方程数组求解的方法&#xff1b; 3&a…

【Mysql】Centos 7.6安装Mysql8

这里centos为阿里云默认镜像。 一、卸载历史历史版本 1、检查是否有服务启动 # service mysqld status 2、停止mysql服务 # service mysqld stop 3、查看mysql历史安装组件 # rpm -qa|grep mysqlmysql-libs-5.1.71-1.el6.x86_64 4、卸载组件 # rpm -e --nodeps mysql…

2022世界VR产业大会圆满收官,酷雷曼惊艳亮相!

11月14日&#xff0c;由工业和信息化部、江西省人民政府联合主办的全球VR领域规模最大、规格最高、影响最广的年度盛会——2022世界VR产业大会在江西南昌圆满落下帷幕。 本次大会得到了党中央、国务院的高度重视&#xff0c;国务委员王勇出席大会开幕式并讲话&#xff1b;大会邀…

【转】DNS隧道检测特征

原文链接&#xff1a;DNS隧道检测特征总结 - 知乎 一、摘要 企业内网环境中&#xff0c;DNS协议是必不可少的网络通信协议之一&#xff0c;为了访问互联网和内网资源&#xff0c;DNS提供域名解析服务&#xff0c;将域名和IP地址进行转换。网络设备和边界防护设备在一般的情况…

C++:内存管理:C++内存管理详解

C语言内存管理是指&#xff1a;对系统的分配、创建、使用这一系列操作。在内存管理中&#xff0c;由于是操作系统内存&#xff0c;使用不当会造成很麻烦的后果。本文将从系统内存的分配、创建出发&#xff0c;并且结合例子来说明内存管理不当会造成的结果以及解决方案。 一&am…

【Spring】Spring AOP的实现原理

目录 什么是AOP AOP的作用 AOP的优点 AOP框架 Spring AOP AspectJ 术语 1.Target ——目标类 2.Joinpoint ——连接点 3.Pointcut——切入点 4.Advice——通知/增强 5.Weaving——植入 6.Proxy——代理类 7.Aspect——切面 底层逻辑 开发流程 1.导入依…

八、手把手教你搭建SpringCloudAlibaba之Sentinel服务降级之慢调用

SpringCloud Alibaba全集文章目录&#xff1a; 零、手把手教你搭建SpringCloudAlibaba项目 一、手把手教你搭建SpringCloud Alibaba之生产者与消费者 二、手把手教你搭建SpringCloudAlibaba之Nacos服务注册中心 三、手把手教你搭建SpringCloudAlibaba之Nacos服务配置中心 …

贪心算法应用

1. 算法思想 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 即选择每一阶段的局部最优&#xff0c;从而达到全局最优。 2. 最大自序和 题目描述 题目链接 给你一个整数数组 n…

用Servlet 编写hello world

第一次接触 Servlet&#xff0c;使用 Servlet 编写代码并配合 Tomcat 在浏览器中展示代码效果&#xff0c;也算是自己这么长时间学习java的一次飞升吧。 本文总结了六步使用 Servlet 编写 helloworld步骤&#xff0c;希望给初学Servlet的同学一些帮助。 0、准备工作 1&#xff…