TCP/IP的一些理解

  • 网络通信协议
  • TCP/IP构架
  • 关于网络通信的阻塞与连接
  • 路由的基本过程
  • 域名系统DNS
    • 什么是DNS?
    • DNS的构架
    • 域名服务器
      • 两种查询模式
    • 正向解析和逆向解析
      • RAP Address Resolution Protocol 地址解析协议
  • 信息确认机制
    • 应用一
    • 应用二
    • 另外一种传输方式
  • 局域网
  • SSL与HTTPS
    • 什么是SLL,SLL的工作原理
    • 特别注意
  • 数据加密
    • 构架
    • 对称加密
    • 非对称加密(加密过程过于复杂,就不具体介绍了)
    • 混合加密系统
  • 数字签名
    • 哈希算法的运用
  • 数字证书与CA
  • IP地址中A类、B类、C类
  • 划分子网
    • 三级IP地址
    • 如何进行划分子网
    • 如何进行对于子网划分网络的路由查找
      • 子网掩码
  • 构造超网
  • 对于点对点通信的问题的解决

相信每一个对互联网有兴趣或对网络通信有兴趣的同学,对于一个主机与另外一个主机之间的连接都会有所疑惑或深深的好奇心。
那么接下来,通过这篇文章相信将会有助于你的理解与应用。

网络通信协议

什么是网络通信协议,因在互联网的诞生之初,各种繁杂,交互的网络协议规则已经越发不能满足日益庞大的互联网用户的需求,网络资源的不断浪费,种种现象就越发的需要相关机构相关产业定制出一套相关规则,相关框架,去使得行业规范化,标准化。因此网络通信协议就应运而生。

TCP/IP构架

首先需要明确的一点是,学习TCP/IP知识,将会有助于您了解互联网的运行原理,是学习Web的基础。
在TCP/IP中包含一系列用于处理数据通信的协议:
IP:网络协议:计算机的通信
TCP:传输控制协议:应用程序之间的通信
DHCP:动态主机配置协议:针对动态寻求地址
ICMP:因特网消息控制协议:对于错误与状态
UDP:用户数据包协议:应用程序之间的简单通信
(关于TCP与UDP的区别:
TCP需要连接。
UDP不需要连接。

TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付。

TCP传输效率相对较低。
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。

TCP连接只能是点到点、一对一的。
UDP支持一对一,一对多,多对一和多对多的交互通信。)

ICMP与IP处于同一层,被用于传送IP的控制信息。主要用来提供有关通向目的地址的路径信息。

关于网络通信的阻塞与连接

首先我们要知道,什么是网络通信的阻塞。网络通信阻塞,主要是数据在传递过程中发生数据的丢失(即接收方并未返回确认,发送方重传数据),在重传数据增多时,网络信道发生阻塞,数据传递效率降低。那么关于如何来减少阻塞呢,令人悲观的是,网络阻塞是无法彻底解决的,那么下面我将为您呈现一种减缓阻塞的方法:即慢开始与拥塞避免,在传送数据初期,即未发生传递速率下降时,数据的传输是以双倍递增来不断扩大传输速度的(假如以1为开始,那么接下来就是2,接下来是4,再接下来是8,以此类推),但假如一旦发生阻塞,那么传输速度将会明显下降,以此来避免阻塞的发生。
网络通信的连接,在TCP连接过程中,应用于三次握手,来建立连接,在发送方发送数据之后,接收方收到,并返回确认消息,接受方收到确认消息之后,将会发送确认消息给与接受方这样一个过程。之所以如此反复的发送消息,最为主要的就是,在TCP的通信协议中,需要确保,确定消息的准确送达,并是信息在通信过程中并未发生丢失,确保不被拦截。

路由的基本过程

我们需要明确关于消息的转递与转发是如何从一个地方到另外一个地方的。我们可以知道,在显示生活中,如果一个人想要从一个完全陌生的地方到另外的地方,地图将会是不可缺少的,那么地图上的哪些信息是我们所需要的呢,显然地名,位置,相关周边是不可缺少的。同样的在数据的传输过程中,路由表就起着这样一个作用。通过路由表我们可以轻易地找出数据传输的路径,发送方可以轻易的将数据传输给接收方。

那么关于路由表是如何建立的呢?
其分为动态与静态建立,在静态建立(RIP)的过程中,路由器仅与相邻的路由器交换信息,交换的仅仅是本身所知道的全部信息,按固定时间进行交换。
动态建立(OSPF)中基于洪泛法(离散所学),交换部分信息,并且只有进行变动时,才会交换。


经过上一次的介绍,现在我们对于网络通信的了解可以说是的打开了大门,但这是远远不够的,希望您能够通过这篇来进一步了解甚至掌握网络通信协议的概念及内容。

域名系统DNS

用来管理名字和IP的对应关系

什么是DNS?

在计算机网络不断发展的今天,计算机终端数量的不断增加,各国对于网络需求的不断增大,那么必然需要一个用来区分地区及应用的标志,来使得计算机的划分有明确的显示及应用,而DNS就是这样一个标志。
在每一个网络的域名中,我们总是可以看到对于网络网址应用或区域的具体划分,例如,以学术,教育机构的网址,总会带上".edu"为标识。我国的国家域名则是以“.cn”为标识

DNS的构架

了解了,DNS是如何应用的,下面我们来介绍,关于DNS的构架是怎样的。
首先,我们需要明确因特网的域名构架:

  1. 域名是有唯一性的,是一个逻辑概念
  2. 是经过树状结构的命名方法
  3. 域名结构是有标号序列组成,其用“.”作为分割

域名服务器

现在,对于IP与主机的划分,我们有了清晰的了解,那么关于响应方也必然需要进行一个划分,来满足其的要求及形式。
根域名服务器,顶尖域名服务器,权限域名服务器,个人域名服务器( 以上四种命名由大到小进行排列,以树状结构进行连接)
根域名服务器,在四者当中最为重要的域名服务器,所有IP地址都将会记录在 其记录。

两种查询模式

迭代查询:在发送方发送一个请求响应的信息时,首先将会向个人域名服务器进行发送信息,个人域名服务器直接对根域名服务器进行发送信息,根域名服务器,将查找所发送信息的顶尖域名服务器的信息进行返回给个人域名服务器,个人域名服务器根据所获得的信息,向所在顶尖域名服务器发送信息,顶尖域名服务器将所在信息的权限域名服务器返回,个人域名服务器将信息发送与权限域名服务器,权限域名服务器将信息予以返回,个人域名服务器,将信息返还给发送端,这将是整个信息的循环机制。
递归查询:首先,DNS在自己的缓存中查询,假如没有找到DNS服务器指向转发器定义的其他DNS服务器进行查询,最终返回给客户机

正向解析和逆向解析

RAP Address Resolution Protocol 地址解析协议

有读者可能要问,有了MAC地址,为什么有IP地址出现呢?两者不可以使用一个来表示地址吗?
答:IP是用于网络层,MAC用于数据链路层。
有读者可能要问,这不是白说的吗?
答:这是其一,之所以区分两个是因为IP适用于整个网络层次,而MAC地址仅仅适用于局域网,就像在发送信息时,源IP与目的IP是不会改变的,而MAC地址在每次通过一个路由后,MAC地址就会发生改变

相信,这样我们就可以清晰的得知为何要使用IP与MAC了。

信息确认机制

我们都知道,每当发送方给与信息接收方发送信息时,接收方必须给与发送方予以响应,即确认信息已经送达的信息,在发送方收到确认信息后,才可进行下一条信息的发送。显然,在发送方等待接收方的确认信息时,发送方必须停止工作等待,这就势必会造成浪费,使得信道通信率降低。

应用一

那么为了解决这一问题,我们我们可以以一个计时器来巧妙的解决这样的问题:
给与信息发送方一个30秒的信息发送时间间隔,那么在30秒(可以更改)后不管是否信息确认消息是否接收到,发送方将会发送下一条信息(在通信传输状况较好时应用)
但与以带来的是另外一个问题,假如信息接收方并未收到信息,需要发送方进行重传,这将会造成极大的问题与麻烦。这是一种计时器在网络传输的应用。

应用二

下面我们来介绍另外一种应用,在发送方发送信息后,我们可以设定一个计时器,它的作用呢,就是在确认接收方发送的确认信息是否在规定时间内进行返回,若超时即重传。

另外一种传输方式

区别于以往的一条一条的信息传送,另外一种将会是,将信息成组(可以看成是一个数组),那么信息的接收将会同样是数组的形式进行接收,但所返回的确认机制却将是数组的最后一条信息进行返回,若发送方未接收成功,那将会返回上次所接收到的信息的节点(Go-back-N)重新进行发送。

局域网

局域网是指,在某一地点进行划分,众多计算机所构成的一个群落性架构,在其中所有网络的通信将会为一个节点进行发送传输,在局域网连接互联网络时,往往将会通过一个进行筛选的路由,来保护网络通信的安全(一种是以直接定义禁止相关网络的信息进入局域网络。另外一种是进行检查,确保危害信息不进入局域网)但信息安全危害永远是不可以被禁止的,有一些网络攻击将会可能隐藏在所发送的信息中,而并未被检测出来,这将会造成极大的危害。


SSL与HTTPS

因为HTTP在出现的过程中并未考虑到网络安全的问题,所以使用HTTP的通信协议更加容易遭到信息的窃取与偷听还有冒充。那么HTTPS 就应用而生,它是在HTTP的基础之上进行的网络通信协议的构架,即在HTTP之下加入了SSL的安全保障。

什么是SLL,SLL的工作原理

关于SLL,我们只需要知道,它是通过一些列的网络安全保护与验证方式进行的安全措施保障。在SSL中,我们所运用的安全保障有“对称加密,非对称加密,数字签名,哈希函数,数字证书”
下面,我们来了解一下它的工作过程:首先客户端要对服务器发送它所理解能的密码套件,接下来服务器将发送,它所能理解的密码套件(在客户端所能理解的套件之中所选),(当进行非匿名通信时,服务器要将证书发送),(当证书信息不足时,服务器需要进行密钥的交换),(当需要客户端进行证明时,服务器将发送证书请求给与客户端),问候结束,(当需要客户端证明时,客户端发送证书),客户端发送密码,客户端发送数字签名,客户端说明更改密码,握手协议结束,服务器说明密码更改,握手协议结束,进行应用数据切换。

特别注意

因为为了保护网站所用数据的安全性以及为了保障用户数据的安全性,现今大部分网站都采用HTTPS来进行网络构架。各大主要浏览器也将自动识别所打开网站是否使用HTTPS进行构架,如果所打开网站未使用HTTPS,将会给与用户发送警告。
所以,为了使自身所搭建的网站不被黑客所攻击,成为他人盈利的工具,HTTPS网络通信协议是必不可少的。
另外,我国法律明确规定,如果网站进行不正当使用,违反我国国家法律规定,那么将会对网站域名注册者进行法律的制裁。

数据加密

随着网络信息交换数据的不断增加,但网络安全却又难以保障,那么数据加密的需求性就在不断地增加。为了保护数据,我们提出了很多种保护方式,下面我们来介绍几种保护措施。

构架

明文:未加密的信息
密文:加密过的信息
密钥:分为加密密钥,解密密钥
公钥:加密,对外进行公布
私钥:自身保留,在信息解密时,进行解密

对称加密

加密密钥与解密密钥是相等的,可通过对称性获取与解析。可以说是极其简单,方便的密钥加密形式,但容易造成网络负担,易造成网络安全的威胁。、

非对称加密(加密过程过于复杂,就不具体介绍了)

在加密算法中,即为公有密钥,在解密算法中,为私有密钥。
共有密钥与私有密钥是不相等且不可推导出来的,从这里我们可以看出这里有了极大的安全性保障。但是在非对称加密过程中,所用到的加密算法即为复杂,效率低下。
在非对称加密,若想要进行数据的加密与解析,那么需要接收方首先将公钥发送出去,即公布出去。发送方根据公钥进行数据的加密,发送,接收方接收到信息后,使用私钥进行解析。

混合加密系统

即将对称加密与非对称加密结合起来。保证了网络的安全性又保证了效率的高效性。
工作构成:先进行对称加密,得到对称密钥,对于对称密钥进行非对称加密。解析过程:先用私钥解析得到对称密钥,再进行对称解密。

数字签名

数字签名技术通过某种加密算法,在一条地址信息的尾部添加一个字符串,而收信人可以根据这个字符串验明发送人的身份,并且可以检查数据的完整性。
好处:1.能够确认数据的完整性,并对数据是否发生变化进行确认。2.能够唯一的确认签名人的身份。3.发信人无法对所发送信息抵赖。

哈希算法的运用

哈希算法在数字签名时,能够加快签名时间,提高安全性。对于加密过程,进行加密算法,经过网络传输,进行解密。在摘要之后,进行对比,若不匹配,则数据在传输过程中发生篡改,需要警惕。

数字证书与CA

首先,数字证书是在数据加密,信息签名中进行运用的。需要明确的是,数字证书的使用是由第三方权威机构进行认证并颁布的,在数字证书中,包含证书持有者标识,序列号,公钥,有效期限,签发者标识,以及CA标识(第三方认证机构标识)。
因为证书的使用是通过第三方权威机构进行担保所进行的,但若不对第三方机构产生信任,那么所产生的数字证书将会不再令人信任,并且数字证书的认证,即第三方认证机构是具有层次性的,假若对于根机构(假设这样说)不再信任,那么它的下属机构将也变得不可信任。


虽然本此分享已将完成,但关于其的更多应用并未涉及,需要读者更加积极的探索与挖掘。期望本系列对您有所帮助。

IP地址中A类、B类、C类

为什么要对IP地址进行划分:
为了更加高效的管理,减少路由表所占的储存空间。

A类:一字节:网络号,三字节:主机号 0~127
首部为 1
B类:二字节:网络号,二字节:主机号 128~192
首部为 10
C类:三字节:网络号,一字节:主机号 193~223
首部为 110
A类->B类->C类

划分子网

先下一个定义,因为互联网用户的数目不断增加,先前所设定的网络地址资源已经划分完毕,但资源利用效率不高。所以,在此基础上,需要对于所划分的网络资源进行进一步的划分与利用,以来提高资源利用效率。
显然,划分子网就是用来帮助人们进行资源的整合与利用的。

三级IP地址

为了整合资源利用,我们将两级IP地址更改为三级IP地址(子网号字段),在进行进行进一步的划分之后,我们可以更加灵活的去管理与应用网络地址资源。
比如:某个公司申请到了一个B类的IP地址,但是它有两个分公司,那么在网络IP够用的情况下,该如何进行划分呢?
显然,方案一便是进行子网划分进行对于所申请到的IP地址的进一步划分。而方案二便是对于再申请一个B类或者两个C类的地址块进行对于两个公司的分配。
从成本与效益上看显然是方案一更加好一点。

如何进行划分子网

首先,我们先要知道,子网号是在主机号中进行划分分出来的。
就如一个B类的地址块,它的主机号是有2字节构成的,那么相应的对于划分子网的时候,需要对于主机号进行分割,而主机号也就会相应的减少。

B类地址块:
IP地址 ::= {<网络号:16>,<主机号:16>}
划分之后:
IP地址 ::= {<网络号:16>,<子网号:4>,<主机号:12>}

我们需要知道的是,对于划分子网是单位内部进行的所申请到IP的划分,表面上仍然是没有进行子网划分的。

如何进行对于子网划分网络的路由查找

首先按照目的网络号进行查找 net-id
其次进行对于子网号的查找 subnet-id
最后对于个别主机号的查找 host-id

问题来了,我们该怎样知道我们所查找的是不是进行了子网划分呢?
问题有了,解决的方法也必然来了:我们需要一种机制,一种能够让我们进行识别的机制,来对于所划分子网的网络进行认知。(子网掩码)

子网掩码

(子网掩码) AND (IP地址)= 网络地址

应用方式:
两级IP地址 = {<网络号>,<主机号>}
子网划分:{

三级IP地址 = {<网络号>,<子网号>,<主机号>}
AND 与运算
子网掩码 = {<1111 1111 1111 1111>,<1111 1111>,<0000 0000>}

(子网掩码 = {<255 255>,<255>,<0>})
}
得到:{
子网的网络地址:={net-id,subnet-id,0}

我们需要知道的是:关于子网掩码,需要在交换路由信息时,告诉相邻的路由器其的子网掩码(一般有默认子网掩码)

默认子网掩码:
A类:255.0.0.0
B类:255.255.0.0
C类255.255.255.0

构造超网

虽然对于子网划分技术是有众多好处的,但是它也不可避免的带来了一些坏处,例如:查找效率下降,网络号长度固定。那么显然超网的构建就将为解决而生。
CIDR()对于它的有关应用我们需要知道的是,它消除了传统IP地址的划分(A,B,C三类),更改为
IP地址::={<网络前缀>,<主机号>} 网络前缀:网络号+子网号 即为无分类的两级编制
例如:128.14.32/20 20为网络前缀所占位数,为掩码
关于网络前缀相同的IP地址,我们将它聚合起来即为CIDR地址块,那么这样的聚合常常被称为路由聚合。
提出一个问题:因为网络前缀是相同的,假设是有22位,那18,14位都同样相同,那么如果在路由器中,我们可以找到有多个匹配结果,那么我们将如何进行查找呢?
**应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配,前缀越长,地址块就越小,路由也就更加准确。

对于点对点通信的问题的解决

在数据链路层中,为了解决通信的安全性,传输信息的准确性以此设置了种种措施。
SOH:F:7E A:FF C: 03 协议:两个字节
0021:IP数据报 C021:PPP链路控制数据 8021: 网路控制数据
ESC:1B在转义字符前增加转义字符 7D

1.封装成帧:为了进行设别IP信息则在信息前插入帧首,在信息后插入帧尾,首部与尾部进行帧定界,测定帧长,MTU(最大长度)SOH首部,EOT尾部。
2.透明传输:为了避免EOT的提前出现,导致所不应该被忽略的信息被销毁,则在SOH,EOT,ESC等前方插入,ESC即转义字符。通过转义字符进行识别标记,在接收端进行信息的转换时,将ESC删除。
异步传输:以字节为单位进行传输,采用字符填充法
同步传输:以比特为单位的传输方法,零比特填充法,在5个1后填充0
3.差错控制:即在信息的传输过程中,少不了对于0变1,1变0这种情况的发生,这就是比特差错。而为了减少这种情况的发生,进行各种差错控制技术。目前在数据链路层广泛使用了循环冗余检验(CRC)的检错技术。
传输差错:比特差错,帧差错:帧丢失,帧重复,帧失序

希望对于您有所帮助。如有错误,敬请指正。

关于TCP/IP通信协议的一些见解相关推荐

  1. MODBUS TCP/IP通信协议及测试方法

    1 前言 MODBUS是一项应用层报文传输协议,是一个请求/应答协议,提供功能码规定的服务,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信. 本文介绍如何使用格西调试精灵(原格西烽火 ...

  2. TCP/IP 通信协议

    概念 TCP/IP 是因特网的通信协议. 通信协议 是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP. ...

  3. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客

    版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 简单介绍: [objc] view plaincopy //  ...

  4. 【软件通信协议】1. 详细解析TCP/IP通信协议

    1. TCP/IP协议简介 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Intern ...

  5. TCP/IP网络通信协议

    概述 TCP/IP 是因特网的通信协议. TCP/IP 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 您的浏览器与服务器都在使用 TCP/IP 协议 浏览器与服务 ...

  6. TCP/IP学习入门笔记

    近期需要做一个用到UDP的工程,之前的情况是上位机计算出的车速(左右轮速),发送给各个小车(具体实现还不知道,等下去问硬件的同学),现在我们要改成用WIFI通信,大致的想法是:以后电脑和小车都连接好手 ...

  7. Socket编程(C语言实现)—— AF_INET(典型的TCP/IP四层模型的通信过程),AF_UNIX(本地进程间通信)

    1.AF_INET域与Socket通信 其是典型的TCP/IP四层模型的通信过程. (1)接收方与发送方依赖IP和port来标识,即,将本地socket绑定到对应的IP端口上: (2)发送数据时指定对 ...

  8. TCP/IP的基本介绍

    目录 TCP/IP 的介绍 TCP/IP 通信协议 TCP/IP TCP/IP 寻址 TCP/IP 协议 TCP/IP 邮件 TCP/IP 的介绍 TCP/IP 是因特网的通信协议,Transmiss ...

  9. ​什么是TCP/IP

    TCP/IP  TCP/IP 是因特网的通信协议. TCP/IP 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 您的浏览器与服务器都在使用 TCP/IP 协议 浏 ...

最新文章

  1. LeetCode简单题之查找共用字符
  2. 用mapXtreme Java开发web gis应用 (上)
  3. Windows 查看所有进程命令tasklist
  4. ITK:读取网格并显示2个给定顶点之间的欧几里得距离
  5. Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手入门、高手进阶第一篇
  6. 炎炎夏日需要一个清凉的地 - 自制水冷系统(十一 指尖的思绪之程序篇)
  7. 搭建Windows Embedded Compact 7开发环境
  8. [MFC]关于Visual studio 2012的AfxGetMainWnd
  9. Oracle中怎么设置一列的列宽,oracle - 所有列的Oracle列宽 - 堆栈内存溢出
  10. 详解Python中的浅复制与深复制
  11. 《RECURRENT BATCH NORMALIZATION》
  12. springMVC 项目在jboss7中配置应用自己的log4j
  13. WinCE6.0下TCPMP的BenchMark汇总
  14. 南邮历午计算机复试题,南京邮电大学2011年考研计算机复试流程
  15. 故障报修管理系统有什么作用?
  16. JSjavascript获取B站封面图片超高清批量下载原图
  17. 2018年10月Top 10机器学习开源项目
  18. We never been grown up
  19. 【生活】驾照C1-科二手册
  20. Python特征分析- 相关性分析

热门文章

  1. Kuberneters企业级容器云平台落地实践
  2. CSS入门基础----行内元素、块级元素和行内块元素的特点和转换
  3. iOS GIF 格式动画 图片显示
  4. kali下载地址和安装方法
  5. 手机上html转word,html转word
  6. 亲测好用的软件(持续更新中)
  7. (四)可滚动视图区域 movable-area moveable-view
  8. 关于计算机的英语名言,行业英语:计算机英语名言警句 - 英语家园
  9. 处理高并发的六种方法
  10. C语言快排函数qsort()