计算机网络——关于TCP/IP的三次握手

来源:互联网 发布:javascript获取日期 编辑:程序博客网 时间:2024/05/29 19:11

重新梳理计算机网络,再次理解TCP/IP三次握手概念

       本文包括:1,网络与互联网;2,五层协议模型的来源;3,到底什么是TCP/IP;

一,网络与互联网
  
        那么什么是因特网呢?在这之前,我们需要先了解一下什么是网络。
       网络指节点和线路的连接。它就是将多台计算机通过通信线路连接在一起。那么通常的网络指什么呢,包括:局域网(lan)、城域网、广域网。
       互联网就是网络的网络。把以上的网络通过某些线路连载一起就是互联网。互联网是最大的广域网,但是广域网可不知有互联网。
       网络可以通过线路连接在一起,比如光纤等,有线或者无线的方式连接在一起,那么网络的网络通过什么呢,就是路由器,他们通过路由器来进行信息的发送接收。当然这个路由器不是宿舍的无线路由器了。这里路由器的功能是找到合适的途径把数据转发给给到正确的地址。一切能够有分组转发的功能都可以称之为路由器。

二,五层协议模型的来源

       首先是协议的概念。为什么会有协议呢?OSI(国际标准化组织)提出了一个倡议,内容就是全球所有的在互联网实现通信必须按照这么一个标准来进行通信。你问看这个组织的名字就知道它是干什么的了。他提出了七层结构。
       这个结构是干啥的呢,就是一个模型,就像磁感线一样,你说他存在吗,存在,那你让我摸摸,对不起,你摸不到。为什么是七层呢,就是他们自己根据实际情况考虑得出的结论,比如你想发送一个数据,你就得经过这七层手续,然后发送给对面,至于对面呢,也得经过这七层才能获得到对方发来了什么样的数据。
      但是,就这七层协议,OSI就讨论了好久,后果是什么呢,就是你这个标准出不来,总得有一个统一的标准吧,就不按照你的标准来了呗。正好互联网兴起,一个非官方的TCP/IP协议就出现了,既然官方没有一个标准呢,那么咱么就自己形成了一个标准。这个协议的特点是什么呢,就是模型层数少只有四层,包括应用层,运输层,网际层,和接口层。说他简单吗,确实很简单。但是它没有受到官方认可啊,官方受到认可模型又因为出产太慢,在市场上又说不上话。于是有了五层协议的模型,折了一个中,这样不复杂还容易理解。
       五层模型是结合了OSI的七层模型和TCP/IP的四层模型得出,其中包括,物理层,数据链路层,网络层,传输层,还有应用层。
       应用层是最上层的就是应用层面才需要的用到的协议,比如浏览器的HTTP协议。
       传输层包括TCP/UDP,就是通过这个协议你把应用层的数据进行加工,找到适合数据的进程。
       网络层就是IP协议。ip就是互联网上的主机,每一个主机有一个独特的ip,就是通过这个Ip协议来找到目标主机。
      数据链路层,就是把包含ip数据报的包装成帧。让数据完整的传到目的地。
      物理层就是把以上的东西变成比特流就是二进制的1010发送出去
      举个简单的例子吧。你想在网页上登录怎么才能登上去呢。第一步你得在网页上输入这个用户名密码,这个就是你的数据。你点登录,首先这个数据就得开始遵守HTTP协议。然后这个数据就被传送到下一层,你得知道哪些软件能打开它,其中就记录着这个消息,这个消息要发送到了哪里呢,就要通过网络层的IP协议,把上面的信息加上了目的主机等信息,有了这个ip就能准确的发送了。在这层包装完的东西就做ip数据报,但是怕你的这个数据发送的时候有问题,就发头尾包装一下,变成了帧,这就是数据链路层的作用,这样子的话对面就收到的时候帧的检查一下这个东西有没有错啊,有没有数据丢失啊。这一层的协议目的就是这个。等数据到了对面,也是按照这么个流程,一步一步获得数据。

三,TCP/IP的三次握手

    现在就到了tcp/ip的三次握手了。
    就是说主机与主机建立连接之时候必须得经过三次握手才能发送数据。这握手时干什么的呢,就是确实身份和状态的过程。咱们在讨论握手的时候就先不管别的物理层啊,数据链路层啊。数据相互发送就是相对应层的事。
     简单首先的说这三次挥手是干什么的呢?就是额。。。你瞅啥,瞅你咋滴,就是你小子你过来咱俩好好唠唠,这三次握手就达成了。之后呢,就开始发送数据,进行深切的交流了。
     那为什么不是别的次数呢,两次或者四次呢?
     俩次就是你瞅啥,瞅你咋滴,对面接到了又变成了你瞅啥,瞅你咋滴。一直来回来去,也沟通不了啊。想想四次会变成什么样呢。你瞅啥,瞅你咋滴,我就瞅你了。你过来咱俩唠唠,你说四次这不是耽误干架么。所以三次就够了。
      这三次大概就是这么个流程,具体是干什么呢
那一个实际生活举例子吧,第二天你去坐车,电话订票。上午你打电话给司机说我叫谁谁,要做车。下午司机就给你打打电话,确实是你要坐车对吧,你电话是这个把。第二天司机就直接对着你的电话号码上车吧,你想万一这变成了两次。你要说你不预定直接来,那不行就不让你上,有钱也不好使。
       从系统上来说,这三次是干什么的呢。
就拿客户端和主机来举例子。
第一次握手
客户端发送(标志位)Syn(建立连接的)的包 syn=j,则时候客户端就进入了Syn——send状态。
第二次握手
服务器受到了syn的包,就得对他进行确认,就是在发送Ack(确认)的包这个就ack=syn+1.于此同时服务器也要发送syn的包,此时服务器向服务器发送的就是syn+ack,这是时候进入了syn_recv;
第三次握手
客户端收受到,就对服务器的包进行ack确认,这样就进入了可以连接的状态。完成了三次握手。握手之后就可以进行发送数据。

这就是三次握手的基本概念,具体当然还是需要点计算机网络知识才能理解了。码字不易多多交流。
下一次就说断开连接时候的四次挥手。