基本网路概念学习

2024-06-22 21:08
文章标签 基本 网路 概念学习

本文主要是介绍基本网路概念学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TCP/IP 四层网络结构

L2 数据链路层 或者叫 主机网络层,负责模数-数模转换,最常用的是以太网,无线以太网等。

L3 网络层,主要有IP协议,网络层发送的数据称为数据报, IP数据报包含20字节(通常)的头部,记录信息包括版本号,首部长度,原地址,目的地址,协议类型等信息。

L4 传输层 负责包以发送时的顺序接收。为了这个目的,这一层有两个主要的协议 TCP 和 UDP。

L5 应用层

TCP的开销 比 UDP 大。 TCP浪费这么大的开销是为了, 保证数据按照发送的顺序拼接起来。因为IP经过的路由不确定,所以接收到的IP包可能不是发送的顺序,所以TCP提供了额外的信息来保证消息能按顺序拼接起来。

IP协议的优点:

1,健壮,两点之间有多个路由,坏了一个,还可以通过别的路由到达。
2,IP协议与平台无关,必须让各种计算机进行通话。
3,IP协议上可以运行多种协议,常用的有TCP,UDP,ICMP(ping程序)

Java唯一支持的协议是TCP和UDP,应用程序建立在TCP和UDP之上, 其他协议,都只能在java程序中用代码实现。

IPv4 每个地址用4个字节标示 ,每个数字都是0-255 ,如192.168.1.1
所以每个IP包包含源地址和目的地址, 包含源地址是为了告诉接受者,该向谁回复。

IPv4的地址最多只有40亿多一点,无法向地球上每个人提供 。 现在正在向IPv6慢慢过渡。它将使用16字节地址。这真是足够用了。
IPv6的地址通常写成用冒号分割的8个区块,如:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562

IP地址都是数字,但人可记不住数字, 因此开发了域名系统DNS, 用来将人类易于记忆的主机名转换为IP数字地址。 当程序访问网络时,需要同时处理数字地址和相应的主机名。

端口
如果每台计算机同时只做一件事,那么只有IP地址就够了,可事实并非如此,那就通过端口号来区分同一台机器上运行的不同的程序 。 传输层协议有65535个端口,也就是可以跑这么多个不同的网络程序。

1024一下的端口,分配给知名的服务,比如HTTP,ssh, 监听这样端口的程序需要最高权限的用户才能启动,也就是root用户。 监听某个端口的意思是,从这个端口接收数据。但所有程序都可以给他们发送数据。

Internet 是以一种标准方式彼此对话的很大的计算机集合。
Internet不是唯一基于IP的网络,却是最大的一个。比如企业网络叫internet (内网)。

所有以10., 172.16-172.31, 192.168 开头的地址都刻意没有分配,可用于内网地址。

IPv4中 127开头的是回路地址。
IPv6中的回路地址是 0:0:0:0:0:0:0:1

NAT 网络地址转换
比如ISP只给了你一个IP地址 216.254.85.72,可是你家里有十几台计算机都要上网, 所以内网地址可以设置成192.168.254.xxx , 路由器会监视入站和出站的连接, 调整IP包中的地址。
对于出站的包,将源地址改成 路由器在网络上的外部地址: 216.254.85.72
对于入站的包,将目的地址改成一个本地地址 。

从网络外部,没人可以与我系统中的192.168.254.12对话,除非我主动发起连接。 或者配置路由器转发 216.254.85.72 到 192.168.254.12 的请求。

防火墙
过滤通常是基于网络地址和 端口的。 防火墙通常工作于 网络层和传输层

代理服务器
代理通常工作于 应用层,也有工作在传输层的。
代理服务器的问题是,它无法应付所有的协议。
通过HTTP作为通道建立协议, 最著名的是SOAP。

所以设置代理的意思是: 不直接访问服务器或者网站,而是去访问代理服务器,让代理服务器去访问某个网站,然后把相应返回给自己。 当然需要代理能够应付你所使用的协议。

本地缓存

Web服务器

IETF是 民间组织 多数人的意见和正在运行的代码
W3C 是厂商控制的团体,要交年费(5W美元)

PR public relation

这篇关于基本网路概念学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085414

相关文章

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

Gradle的基本使用

新建一个项目后,在项目文件夹下创建build.gradle文件,并加入内容:       apply plugin: 'eclipse'。    然后在终端运行gradle eclipse即可构建eclipse IDE的开发环境。    gradle默认值:gradle有些目录是有默认值存在,建议项目的配置,承袭了maven的风格,如:         java的源码目录:src/mai

QML入门之基本元素

元素分为可视元素与非可视元素,可能元素例如Rectangle、Button等。非可视元素如Timer(定时器)、MouseArea(鼠标区域)等。非可视元素一般用于操作可视元素。 基础元素 Item Item(基础元素对象)是所有可视元素的基础对象,它们都继承自Item。可是元素存在以下共有属性。 Group(分组)Properties(属性)Geometry(几何属性)x