网络编程day03(网络体系结构、调试命令、TCP/IP对比)

目录

1》网络的体系结构

[1> OSI模型](#1> OSI模型)

[2> TCP/IP模型](#2> TCP/IP模型)

[3> 常见网络协议](#3> 常见网络协议)

[4> DNS域名解析协议](#4> DNS域名解析协议)

[2》 网络调试命令](#2》 网络调试命令)

[1> ping:测试网络连通性(ICMP)](#1> ping:测试网络连通性(ICMP))

[2> netstat](#2> netstat)

[3》Dos (拒绝式服务)攻击?](#3》Dos (拒绝式服务)攻击?)

[4》 TCP/IP协议对比](#4》 TCP/IP协议对比)


1》网络的体系结构

网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。

每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务。

网络体系结构即网络的层次结构和每层所使用协议的集合

两类非常重要的体系结构:OSI和TCP/IP

1> OSI模型

OSI模型是最理想的模型,只是在理想中的状态,并无法在现实中实现

**应用层:**指定特定应用的协议,文件传输,文件管理,电子邮件等。

**表示层:**确保一个系统应用层发送的信息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密。

**会话层:**通信管理,负责建立或者断开通信连接。

传输层:端口号,数据传输到具体那个进程程序(端到端)

网络层:路由器中是有算法的,ip,(主机到主机)(路由的发送)。

**链路层:**格式变为帧(把数据分成包,一帧一帧的数据发送)。

**物理层:**传输的时bit流(0与1 一样的数据),物理信号,没有格式。

2> TCP/IP模型

**应用层:**应用协议和应用程序的集合

传输层: 决定数据交给机器的那个任务(进程)去处理,通过端口寻址;进程一定有进程号,不一定有端口号,端口号只有在进行网络通信才有

网络层: 提供设备到设备的传输,可以理解为通过IP寻址机器

**网络接口和物理层:**屏蔽硬件差异(驱动),向上层提供统一的操作接口。

OSI和TCP/IP模型对应关系图

3> 常见网络协议

网络接口和物理层:

<1> ppp:拨号协议(老式电话线上网方式)

<2> ARP:地址解析协议 IP-->MAC

<3> RARP:反向地址转换协议 MAC-->IP

网络层:

<1> IP(IPV4/IPV6):网间互连的协议

IP(Internet Protocol,网际协议)是网间层的主要协议,任务是在源地址和和目的地址之间传输数据。IP 协议只是尽最大努力来传输数据包,并不保证所有的包都可以传输到目的地,也不保证数据包的顺序和唯一。

<2> ICMP:网络控制管理协议,ping命令使用

ICMP(Internet Control Message Protocol,网络控制消息协议)是 TCP/IP 的核心协议之一,用于在 IP 网络中发送控制消息,提供通信过程中的各种问题反馈。ICMP 直接使用 IP 数据包传输,但 ICMP 并不被视为 IP 协议的子协议。常见的联网状态诊断工具依赖于 ICMP 协议。

<3> IGMP:网络分组管理协议,广播和组播使用

传输层:

<1> TCP:传输控制协议

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的,可靠的,基于字节流传输的通信协议。TCP 具有端口号的概念,用来标识同一个地址上的不同应用。

<2> UDP:用户数据报协议

UDP(User Datagram Protocol,用户数据报协议)是一个面向数据报的传输层协议。UDP 的传输是不可靠的,简单的说就是发了不管,发送者不会知道目标地址的数据通路是否发生拥塞,也不知道数据是否到达,是否完整以及是否还是原来的次序。它同 TCP 一样有用来标识本地应用的端口号。所以应用 UDP 的应用,都能够容忍一定数量的错误和丢包,但是对传输性能敏感,比如流媒体、DNS 等。

应用层:

<1> SSH:加密协议

SSH(Secure Shell,安全Shell),因为传统的网络服务程序比如TELNET本质上都极不安全,明文传输数据和用户信息包括密码。SSH 被开发出来避免这些问题,它其实是一个协议框架,有大量的扩展冗余能力,并且提供了加密压缩的通道可以为其他协议使用。

telnet:远程登录协议

<2> FTP:文件传输协议

FTP(File Transfer Protocol,文件传输协议)是用来进行文件传输的标准协议。FTP 基于 TCP,使用端口号 20 来传输数据,21 来传输控制信息。

<3> HTTP:超文本传输协议

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是现在广为流行的 WEB 网络的基础,HTTPS 是 HTTP 的加密安全版本。协议通过 TCP 传输,HTTP 默认使用端口 80,HTTPS 使用 443。

<4> DNS:域名解析协议

DNS(Domain Name System,域名系统)是互联网的一项服务,可以简单的将用"."分隔的一般会有意义的域名转换成不易记忆的 IP 地址。一般使用 UDP 协议传输,也可以使用 TCP,默认服务端口号为53。

<5> SMTP/POP3:邮件传输协议

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是现在在互联网上发送电子邮件的事实标准。使用 TCP 协议传输,端口号为 25。

POP(Post Office Protocol,邮局协议)是支持通过客户端访问电子邮件的服务,现在版本是 POP3,也有加密的版本 POP3S。协议使用 TCP,端口为 110。

4> DNS域名解析协议

概念:

由于使用IP地址来指定计算机不方便人们记忆,且输入时候容易出错,用字符标识网络中计算机名称方法。

这种命名方法就像每个人的名字,这就是域名(Domian Name )

域名服务器(Domain Name server):用来处理IP地址和域名之间的转换。

域名系统(Domain Name System,DNS):域名翻译成IP地址的软件DNS

域名结构:
例如域名 www.baidu.com.cn 从右向左看

cn为高级域名,也叫一级域名,它通常分配给主干节点,取值为国家名,cn代表中国

com为网络名,属于二级域名,它通常表示组织或部门

中国互联网二级域名共40个,edu表示教育部门,com表示商业部门,gov表示政府,军队mil等等

baidu为机构名,在此为三级域名,表示百度

www:万维网world wide web,也叫环球信息网,是一种特殊的信息结构框架。

DNS工作过程

DNS黑客技术

2》 网络调试命令

1> ping:测试网络连通性(ICMP)

作为平时网络连通检测使用最多的命令,它的作用主要是:

1> 用来检测网络的连通情况和分析网络速度;

2> 根据域名得到服务器IP

3> 根据ping 返回的TTL 值来判断对方所使用的操作系统及数据包经过路由器数量

**字节:**数据包大小,也就是字节

**时间:**响应时间(我发送数据包到该地址到该地址回应数据包到我这),这个时间越小,说明链接这个地址的速度越快

**TTL:**Time To Live,从源到目的,每经过一个路由器,TTL减1,当TTL=0时,包丢掉

2> netstat

netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,他可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat 用于显示与IP、TCP、UDP相关的统计数据,一般用于检验本机端口的网络连接情况。

作用:测试网络状态

cs 复制代码
netstat -a      //查看所有网络状态
netstat -at     //查看tcp所有网络状态
netstat -au     //查看udp所有网络状态
netstat -l      //查看处于监听状态的链接
netstat -lt     //查看处于监听状态的链接tcp
netstat -lu     //查看处于监听状态的链接udp
netstat -lx     //查看处于监听状态的链接unix

3》Dos (拒绝式服务)攻击?

DOS:即Denial Of Service,拒绝服务的缩写,拒绝服务,DOS攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。

要对服务器实施拒绝服务攻击,主要有以下两种方法:

①迫使服务器的缓冲区满,不接收新的请求;

②使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接,这也是DoS攻击实施的基本思想。

为便于理解,以下介绍一个简单的DoS攻击基本过程:攻击者先向受害者发送大量带有虚假地址的请求,受害者发送回复信息后等待回传信息。由于是伪造地址,所以受害者一直等不到回传信息,分配给这次请求的资源就始终不被释放。当受害者等待一定时间后,连接会因超时被切断,此时攻击者会再度传送一批伪地址的新请求,这样反复进行直至受害者资源被耗尽,最终导致受害者系统瘫痪。

4》 TCP/IP协议对比

UDP、TCP协议的相同点:都存在于传输层,全双工通信

不同点:

TCP:全双工通信、面向连接、可靠

TCP(即传输控制协议):是一种面向连接的传输层协议 ,他能提供高可靠性通信 (即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)

高可靠原因:

1.三次握手、四次挥手

2.序列号和应答机制

3.超时、错误重传机制

4.拥塞控制、流量控制

适用场景:

适合用于对传输质量要求较高的通信

在需要可靠数据传输的场合,通常使用TCP协议

MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

UDP:全双工通信、面向无连接、不可靠

UDP(用户数据包协议):是一种不可靠的无连接协议 。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用场景:
发送小尺寸数据(如对DNS服务器进行IP地址查询时)

适合于广播/组播式通信中。

MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议


今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。

如果觉得不错并且对你有帮助的话点个关注支持一下吧!

相关推荐
速盾cdn1 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211231 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin1 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao3 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
向宇it5 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
九鼎科技-Leo5 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
搬砖的小码农_Sky5 小时前
C语言:数组
c语言·数据结构
黑客Ash5 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy5 小时前
计算机网络(第一章)
网络·计算机网络·php
Heaphaestus,RC6 小时前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#