基本网路概念学习

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

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul