| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 三、网络编程 -> 正文阅读 |
|
[网络协议]三、网络编程 |
TCP/IP协议?TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP?和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。 网络基础知识-TCP/IP协议各层详解 - 战争热诚 - 博客园 (cnblogs.com) ???????? TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。 tcp/ip是个协议组,它可以分为4个层次,即网路接口层,网络层,传输层,以及应用层, 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层有TCP,UDP协议 而在应用层有HTTP,FTP,DNS等协议 因此HTTP本身就是一个协议,是从WEB服务器端传输超文本,到本地浏览器的一个传输协议 下面我们用一张图来准确形象的表示 (1)物理层(Physical Layer)? ? ? ? 物理层利用传输介质为数据链路层提供物理链接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。它关心的问题有:多少伏电压代表1?多少伏电压代表0?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。 (2)数据链路层(Data Link Layer)????????数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。 ????????数据帧中包含物理地址(又称MAC地址)控制码、数据及校验码等信息。该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。 ????????此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。 ?????????4> 两个重要设备名称:网桥和交换机。 ????????mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号) (3)网络层(Network Layer)????????网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。 ????????网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址 IP协议:
子网掩码: 所谓“子网掩码”,就是表示子网络特征的一个参数,它在形式上等同于IP地址,也就是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。 比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。 子网掩码是用来标识一个IP地址的那些位是代表网络位,以及那些位代表主机位。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分为网络地址和主机地址两部分。 ????????192.168.1.0/24 ????????????????.1和.0是同一个子网下面的两个地址。 ????????????????另外,24是指子网掩码的位数。 ????????????????子网掩码的位数总共有32个,写的的/24个就是24个1,其它8位都是0。 ????????????????/24就可以写成子网掩码是:11111111 11111111 11111111 00000000 ????????????????例如: ????????????????/25,就代表有25个1,7个0,一共是32位。 ????????????????8位数为一组,就可以写成:11111111 11111111 11111111 10000000 IP地址分类 其中A、B、C3类(如下)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。 IP地址的划分: ?? ??? ??? ?私有IP不能直接上网 ????????环回接口(loopback)。平时我们用127.0.0.1来尝试自己的机器服务器好使不好使 ?IP报文: ???????? IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输,要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。 ????????IP协议头: ????????8位生存时间 TTL:这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64。 ????????地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资 RARP协议(RARP:Reverse Address Resolution Protocol)?: ????????反向地址转换协议 ? ????????完成mac地址到IP地址的映射 ICMP(网络控制报文)协议(Internet Control Message Protocol): ? ? ????internet控制消息协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。 ????????我们一般主要用ICMP协议检测网络是否通畅,基于ICMP协议的工具主要有ping 和traceroute ? ? ? ? ping: 它利用ICMP协议包来侦测另一个主机是否可达。可计算间隔时间,并计算有多少个包被送达。 ? ? ? ? ping 127.0.0.1? ? ? ? ? ? ? ping www.baidu.com ????????traceroute:用来查看从当前主机到某地址一共经过多少跳路由 (4)传输层(Transport Layer)????????? ? ?????????传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。 ????????传输层传送的协议数据单元称为段或报文。 ????????传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,迅雷等多个应用程序, 那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序呢?答案就是端口,端口即应用程序与网卡关联的编号。 ????????传输层功能:建立端口到端口的通信 ????????补充:端口范围0-65535,0-1023为系统占用端口 ????????传输层有两种协议,TCP和UDP TCP协议(TCP,Transmission Control Protocol) ????????传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。 ????????可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。 UDP协议(UDP,User Datagram Protocol) ????????用户数据报协议, 无连接、资源小、实现简单、不安全、不可靠 ????????不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。 (5)会话层(Session Layer)????????会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。 (6)表示层(Presentation Layer)????????表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。 (7)应用层(Application Layer)????????应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。 1、HTTP?? ?超文本传输协议,:万维网的基本协议; 7、SNMP 简单网络管理协议,该协议提供了监控网络设备的方法, 以及配置管理,统计信息收集,性能管理及安全管理等; 网络通信三要素———1:IP地址———2:端口????????????????要将数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这些数字,则将这些数字称为端口。(此端口称为一个逻辑端口) ———3:传输协议????????UDP????????TCP 网络 链接:https://www.zhihu.com/question/311853144/answer/595290931 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:38:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |