JAVAEE初阶相关内容第十四弹--网络初识-CSDN博客

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    写在前

    这一部分开启网络部分的相关知识这一弹内容初始网络将主要进行网络相关知识的简单介绍以及着重介绍协议、协议分层、OSI七层模型、TCP/IP五层模型、封装和分用。

    需要认识协议并知道协议的效果是什么知道为什么分层分层的好处每一层都是干什么的以及层与层之间是如何进行配合工作的。

    目录

    写在前

    1.网络发展史

    1.1独立模式

    1.2网络互连

    1.3局域网LAN

    1.3.1局域网组建网络的方式

    1基于网线直连

    2基于集线器组建

    3基于交换机组建

    4基于交换机和路由器组建

    1.3.2知识拓展--光纤

    1.4广域网WAN

    2.网络通信基础

    2.1IP地址

    2.1.1概念 

    2.1.2格式

    2.1.3特殊IP

    2.2端口号

    2.2.1概念

    2.2.2格式

    2.2.3注意事项

    2.2.4了解内容

    2.3认识协议

    2.3.1概念

    2.3.2五元组

    1源IP

    2源端口号

    3目的IP

    4目的端口号

    5协议号

    2.3.3协议分层

    1协议分层的好处

    2OSI七层模型

    3TCP/IP五层/或四层模型

    2.4封装和分用

    2.5内容拓展

    1数据包

    2数据包的组成

    3载荷

    4载荷的传输过程


    1.网络发展史

    网络在国外起步比较早在国内是2000年左右开始起步的。2000年左右网络开始兴起越来越多联网游戏出现这里就有局域网联网、广域网联网。【局域和广域没有一个明确的界限】

    2007年乔布斯发布苹果一代智能手机登上历史舞台标志着网络时代开始往“移动互联网进军”。2008年安卓登场。2011年安卓崛起2014年左右移动互联网发展最迅速的一年资本的风口疯狂涌入这个赛道掀起全民创业的高潮。

    1.1独立模式

    计算机之前是相互独立的每个终端各自持有客户数据。

    1.2网络互连

    将多台计算机连接在一起完成数据共享。

    数据共享的本质是网络数据传输即计算机之间通过网络来传输数据也称网络通信

    1.3局域网LAN

    局域网Local Area NetWork简称LAN。Local即标识了局域网是本地局部组建的一种私有网络。

    局域网内的主机之间能方便进行通信又称内网局域网和局域网之间在没有连接的情况下是不能进行通信的。

    1.3.1局域网组建网络的方式

    1基于网线直连
    2基于集线器组建

    比较古老的东西现在比较少见一根网线岔出来两根

    3基于交换机组建

    组建局域网不能跨局域网。【交换机有家用的也有企业用的】

    4基于交换机和路由器组建

    WiFi的本质就是一个无线路由器路由器的本质上就是把两个局域网给连起来。

    现在带有路由功能三层转发交换机也是很多很常见的交换机哥路由器之间的界限越来越模糊。

    1.3.2知识拓展--光纤

    传输信号的介质。

    网络通信信号传递

    电信号网线、光信号光纤-玻璃丝、电磁波

    对于电信号可以使用低电平表示1高电平表示0

    对于光信号可以使用高频光表示1低频光表示0

    1.4广域网WAN

    广域网Wide Area NetWork 简称WAN

    通过路由器将多个局域网连起来在物理上组成很大范围的网络就形成广域网广域网内部的局域网都属于其子网。

    2.网络通信基础

    网络互联的目的是进行网络通信也即是网络数据传输更具体一点是网络主机之间的不同进程间基于网络传输数据。

    2.1IP地址

    2.1.1概念 

    IP地址主要用于标识网络主机、其他网络设备如路由器的网络地址。简单的说IP地址用于定位主机的网络地址。类似于我们发快递一样需要知道对方的收货地址快递员才能将包裹送到目的地。

    2.1.2格式

    32位二进制数 “点分十进制”。

    2.1.3特殊IP

    环回IP用于本机环回loop back测试通常是127.0.0.1

    2.2端口号

    标识一个具体的应用程序。

    2.2.1概念

    端口号可以标识主机中发送数据、接收数据的进程。简单说端口号用于定位主机中的进程。

    2.2.2格式

    端口号是0-65535范围的数字在网络通信中进程可以通过绑定一个端口号来发送及接收网络数据。

    2.2.3注意事项

    两个不同的进程不能绑定同一个端口号但是一个进程可以绑定多个端口号。

    2.2.4了解内容

    一个进程启动之后系统会随机分配一个端口启动端口

    程序代码中进行网络编程时需要绑定端口号收发数据的端口来发送、接收数据。

    此时我们提出一个问题有了IP和端口号后可以定位到网络中唯一的一个进程但是存在问题网络是基于二进制0/1数据来传输如何告诉对方发送的数据是什么样子的

    网络通信传输的数据类型也是很多种的同一个数据类型格式也可能不同如何识别

    基于网络数据传输需要使用协议来规定双方的数据格式。

    2.3认识协议

    2.3.1概念

    协议网络协议的简称网络协议是网络通信及网络数据传输经过所有的网络设备都必须共同遵从的一组约定、规则。如何建立、怎么识别。只有遵循这个约定才能实现计算机之间的相互交流。

    协议protocol

    最终体现为在网络上传输的数据包格式。

    2.3.2五元组

    1源IP

    标识源主机。

    2源端口号

    标识源主机中该次通信发送的数据进程。

    3目的IP

    标识目的主机。

    4目的端口号

    标识目的主机中该次通信接收的数据进程。

    5协议号

    标识发送进程和接收进程双方约定的数据格式。

    2.3.3协议分层

    网络通信是一个比较复杂的事情需求场景复杂实现的功能也复杂如果这个协议复杂学习成本、使用成本、理解成本、维护成本都非常高。因此实际采用的做法都是针对这个复杂的大协议拆分成若干小的协议。每个协议负责一部分功能。此时就会发现某些协议之间起到的功能和作用是类似的。就针对这些小的协议继续进行“分类”分层这就好比代码拆分为很多类有些类功能差不多就可以放到同一个包里。

    1协议分层的好处

    降低了学习和维护的成本封装。

    灵活的针对这里的某一层协议进行替换。

    当前互联网世界协议分层有两种风格

    2OSI七层模型

    教科书上的实际上是没有的

    物理层 、数据链路层、网络层、传输层、会话层、表示层、应用层。

    3TCP/IP五层/或四层模型

    五层或四层是针对的包不包含物理层来说的。

    是OSI简化的实现方式。

    TCP/IP是一组协议的代名词它还包括很多协议组成了TCP/IP协议簇。

    TCP/IP通讯协议采用了5层的层级结构每一层都呼叫他的下一层所提供的网络来完成自己的需求。

    TCP/IP五层协议
    层级名称主要负责内容协议举例备注
    应用层负责应用程序间沟通如简单的电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等。网络编程主要针对的就是应用层。应用程序用户怎样进行使用。应用程序程序员自己写的代码
    传输层负责两台主机之间的数据传输如传输控制协议TCP能够确保数据可靠的从源主机发送到目的主机。类比于快递公司的送货在网上买衣服需要填写收货人地址、姓名卖家与买家均不需要关心快递传输的过程只关心起点和终点。操作系统
    网络层负责地址管理和路由选择例如在IP协议中通过IP地址来标识一台主机并通过路由表的方式规划出两台主机之间的数据传输的路线路由。路由器Router工作在网络层。

    路径规划走那条路划算。

    例如快递从上海发往北京选择卡车运输这时就需要考虑具体从哪条路走这就是网络层的作用。

    数据链路层负责设备之间的数据帧的传送和识别例如网卡设备的驱动、帧同步就是说从网线上检测到有什么信号算作新帧的开始、冲突检测如果检测到冲突就自动重发、数据差错校验等工作。有以太网、令牌环网、无线LAN等标准。交换机Switch工作在数据链路层。

    相邻的两个节点之间具体进行怎么传输。例如将一个快递从上海运到哈尔滨。可以分为上海到北京再到哈尔滨。
    第一段上海到北京选择卡车运输。

    第二段北京到哈尔滨选择飞机运输。

    这里运输方式的选择就是数据链路层的作用。

    设备驱动程序与网络接口。驱动程序和硬件设备关联每个硬件的厂商会提供对应的驱动软件操作系统内核通过驱动程序来控制硬件
    物理层负责光/电信号的传递方式现在的以太网通用的网线双绞线、早期以太网采用的同轴电缆现在主要用于有线电视、现在的WiFi无线网使用的电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率传输距离抗干扰性。集线器Hub工作在物理层。

    约定了网络通信中基础的硬件设备是啥类比于现实生活中的修路。

    通信使用的网线、网口设备都是相同规格的。

    以上层级越往下越接近硬件设备越往上越接近用户。上层协议调用下级协议下层协议给上层协议提供服务。

    2.4封装和分用

    不同的协议对数据包有不同的称谓

    不同协议层对数据包的不同称谓
    传输层segment
    网络层数据报datagram
    数据链路层frame

    应用层数据通过协议栈发到网络上时每层协议都要加上一个数据首部header称为封装Encapsulation。

    首部信息中保护你一些类似于首部有多长载荷payload有多长上层协议时什么等信息。

    数据封装成帧后发送到传输介质上到达目的主机后每层协议再剥掉相应的首部根据首部中的“上层协议字段”将数据交给对应的上层协议处理。

    2.5内容拓展

    1数据包

    什么是数据包数据包是计算机网络中传输的基本单位它是由网络层和传输层协议定义的一组二进制数据。每个数据包都包含了发送方和接收方之间的信息例如源地址、目标地址、控制信息以及载荷等。

    2数据包的组成

    一个标准的数据包通常由以下几个部分组成

    a.首部首部是指在数据包最前面的一段二进制数据它通常用于存储控制信息例如源地址、目标地址以及其他与传输相关的参数。

    b.载荷载荷是指在数据包中实际要传输的信息例如文本、图片、音频等等。

    c.尾部尾部是指在数据包最后面的一段二进制数据它通常用于校验和错误检测等操作。

    d.标志位标志位用于标记当前数据包是否为最后一个分片或者是否需要特殊处理。

    e.序号序号用于保证接收方能够正确地按照顺序接收所有分片并且不会重复接收。

    f.确认号确认号用于告诉发送方接收方已经成功接收了哪些分片并且可以继续发送下一个分片。

    g.时间戳时间戳用于记录当前数据包被发送的时间以便后续的分析和调试。

    h.其他除了以上几个部分之外数据包还可能包含其他一些与传输相关的信息例如优先级、负载均衡等等。

    3载荷

    载荷是指在一个通信协议中实际要传输的信息。在计算机网络中载荷通常被封装在一个或多个数据包中并通过网络进行传输。

    4载荷的传输过程

    当一个计算机向另一个计算机发送载荷时它会将载荷封装在一个或多个数据包中并将每个数据包按照一定的顺序发送出去。接收方则会按照相同的顺序接收所有分片并在接收完所有分片之后将它们重新组合成原始载荷。

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Java