网络协议

两台计算机之间的通信(条件):

  1. 首先要通过各种的物理连接介质相连

  2. 找准,确定对方计算机(准确到软件的位置)

  3. 通过统一的标准(一揽子协议)进行数据的收发

一、C\S B\S架构

C: client 客户端

B: browse 浏览器

S: server服务端

C\S基于客户端和服务端之间的通信

优缺点:QQ,快手

​ 优点:个性化设置,响应速度快

​ 缺点:开发,维护成本高,占用空间,用户固定

B\S基于浏览器与服务端之间的通信

优缺点:火狐浏览器,谷歌浏览器

​ 优点:开发维护成本低,占用空间相对低,用户不固定

​ 缺点:功能单一,没有个性化设置,响应速度相对慢一些

二、网络通信原理

80年代,固定电话联系,(还没有推广普通话)

  1. 两台电话之间一堆物理连接介质连接.

  2. 拨号,锁定对方电话的位置.

由于当时没有统一普通话,所以你如果和河南,山西,广西,福建等朋友进行友好的沟通交流,你必须学当地的方言.

推广普通话,统一交流方式.

  1. 两台电话之间一堆物理连接介质连接.
  2. 拨号,锁定对方电话的位置.
  3. 统一交流方式.

全球范围内交流:

  1. 两台电话之间一堆物理连接介质连接.
  2. 拨号,锁定对方电话的位置.
  3. 统一交流方式.(英语)

话题转回互联网通信:

​ 我现在想和美国的一个girl联系.你如何利用计算机联系???

  1. 两台计算机要有一堆物理连接介质连接.

  2. 找到对方计算机软件位置.
  3. 遵循一揽子互联网通信协议.

三、osi七层协议(应表会传网数物)

每层运行的物理设备

img

1.简单串联五层协议以及作用

物理层:

​ 物理层指的就是网线,光纤,双绞线等等物理连接介质

​ 物理层发送的是比特流:0101010101010(基于电器特性,高电压1,低电压0)

​ 数据应该有规律的分组,分组是数据链路层做的事情

数据链路层(定义了电信号的分组方式)

​ 数据链路层对比特流进行分组

​ 最开始从事互联网企业的就是美国的几家公司,各家有各家自定的分组标准.后来统一了标准: 对数据分组的标准.

以太网协议:对比特流进行合理的分组

​ 一组数据010101101010叫做一帧,数据报

​ head|DATA(晚上约吗)

​ head是固定的长度:18(6,6,6)

​ 源地址:6个字节

​ 目标地址:6个字节

​ 数据类型:6个字节

​ data:最少是46个字节,最大是1500字节

​ 一帧数据:最少64个字节,最大1518个字节,超过最大限制就分片发送

​ 一帧数据|一帧数据

​ 每个电脑上都有一个网卡,网卡上都记录着一个独一无二的地址

​ mac地址:就是你的计算机上网卡上标注的地址

​ 12位16进制数组成 :前六位是厂商编号,后六位是流水线号.

​ 源mac地址 目标mac地址 数据类型 | data

​ '1C-1B-0D-A4-E6-44'

​ 计算机的通信方式:

​ 同一个局域网内,通过广播的形式通信.

​ 消息一经广播发出,村里所有的人(局域网所有的计算机都能接收到消息,分析消息,是否是找我的,不是就丢弃),

​ 计算机只能在局域网内进行广播: 范围大了 广播风暴,效率极低.

网络层

​ ip协议:确定局域网(子网的)位置(规定网络地址的协议叫ip协议,它定义的地址称之为ip地址)

传输层

​ 端口协议:确定软件在计算机的位置

应用层:

​ 自己定义的协议

​ 广播(局域网内) + mac地址(计算机位置) + ip(局域网的位置) + 端口(软件在计算机的位置)

有了以上四个参数:你就可以确定世界上任何一个计算机的软件的位置.

对五层协议详细的补充说明

数据链路层:

​ 同一个局域网通过广播的形式发送数据

交换机的mac地址学习功能:

​ 一个交换机的5个接口: 5个计算机.

​ 1: FF-FF-FF-FF-FF-FF

    2: FF-FF-FF-FF-FF-FF

    3: FF-FF-FF-FF-FF-FF

    4: FF-FF-FF-FF-FF-FF

    5: FF-FF-FF-FF-FF-FF

​ 接口1: 源mac 1C-1B-0D-A4-E6-44 目标1C-1C-0D-A4-E5-44 |数据 以广播的形式发出

​ 2,3,4,5口都会接收到消息,5口是最终的目标地址,交换机就会将5口与mac地址对应上.

    1: 1C-1B-0D-A4-E6-44

    2: FF-FF-FF-FF-FF-FF

    3: FF-FF-FF-FF-FF-FF

​ 4: FF-FF-FF-FF-FF-FF

    5: 1C-1C-0D-A4-E5-44

​ 当五个口都对应上具体的mac地址,2口再次发消息,就不会广播了,就会以单播发送.

我们的前提是什么? 你必须知道对方的mac地址你才可以以广播的形式发消息.实际上,网络通信中,你只要知道对方的IP与自己的IP即可.

网络层:

​ IP协议:

​ ip地址:四段分十进制 192.168.0.12

​ 取值范围 0~255.0~255.0~255.0~255

​ 子网掩码: C类子网掩码: 255.255.255.0

​ ip地址 + 子网掩码 按位与运算 计算出是否在统一局域网(子网,网段).

​ 计算172.16.10.1 与 172.16.10.128

172.16.10.1:10101100.00010000.00001010.00000001

​ 255.255.255.0: 11111111.11111111.11111111.00000000

​ 从属于的局域网: 172.16.10.0

​ 172.16.10.128:10101100.00010000.00001010.10000000

​ 255.255.255.0: 11111111.11111111.11111111.00000000

​ 从属于的局域网: 172.16.10.0

​ 172.16.10.1 ~172.16.10.255

​ C类子网掩码 一个网段最多可以承载多个IP地址?

​ 172.16.10.0 被占用.

​ 172.16.10.255 广播地址 被占用.

​ 172.16.10.1 被占用.

​ 253台计算机.

​ 如果你要想给另一个计算机发数据, 你一定要知道对方的ip地址.

ARP协议:通过对方的IP获取对方的mac地址

​ 第一次发消息: 发送到交换机 ---> 路由器 广播的形式发出去

​ 目标计算机收到消息:就要回消息:

​ 源码mac 目标mac 源IP 目标IP 数据

​ 1B-1B-0D-A4-E6-54 1C-1B-0D-A4-E6-44 172.16.10.156 172.16.10.13 数据

总结:

​ 前提:知道目标mac:

​ 计算机A 发送一个消息给 计算机B

​ 源码mac 目标mac 源IP 目标IP 数据

​ 单播的形式发送到交换机,交换机会检测自己的对照表有没有目标mac,如果有,单播传.如果没有,交由上一层: 路由器:

路由器收到消息: 对消息进行分析:

​ 要确定目标计算机与本计算机是否在同一网段,

​ 如果在同一网段,直接发送给对应的交换机,交换机在单播发给目标mac.

​ 如果不是在同一网段: ?

前提:不知道目标mac:

​ 计算机A 发送一个消息给 计算机B

​ 源码mac 目标mac不知道 源IP 目标IP 数据

​ 单播的形式发送到交换机,交换机交由上一层路由器:路由器收到消息: 对消息进行分析:

​ 要确定目标计算机与本计算机是否在同一网段,

​ 如果在同一网段通过 IP以及ARP协议获取到对方的mac地址,然后在通信.

​ 如果不是在同一网段: ?

  • 传输层:

    ​ 端口协议: UDP协议,TCP协议

    ​ 65535端口

    ​ 1~1024操作系统专门使用的端口

    ​ 举例: 3306 数据库

    ​ 自己开发软件都是8080以后的端口号

四、UDP TCP协议

​ TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、流式协议, 传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。

​ UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

五、TCP协议的三次握手和四次挥手

syn洪水攻击:制造大量的假的无效的IP请求服务器,致使正常的IP访问不了服务器

posted on 2019-08-13 21:16  七橼77 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/-777/p/11348620.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值