TCP,IP,端口,地址(初步理解)

1,关于tcp/ip(Tanasmission Control Protocol/Internet Protocol)

  

首先我们必须清楚tcp/ip是一个协议族(是一些协议的合集)


这里tcp/ip相当于一辆车在高速公路上面跑,(tcp此刻就是相当于车,而ip就是高速公路了),来回传送信息


internet中最基本的协议,由网络层的ip协议和传输层的tcp协议组成

internet是在一些共享的线路上发送数据的,例如,我们的计算机上面现在运行着一些程序,qq,浏览器,音乐,email,但是,这的注意的是:我们是通过一条单一的线路Modem或DSL(digital subscriber line,数字用户线路)来共享的连接互联网 

       当然,为了实现共享,tcp将会把要发送的数据流分解成小的信息数据包在internet上面传输(还可能有其他的信息数据 包),当这些信息数据包发送过去以后,也就是被接受者接收到以后会再一次的合成在一起,形成完整的数据(分散成小的信息数据包,internet就会用很少的时间来发送数据的每一个位(bit))



这里着重强调一下:tcp是以字节流形式运转的(和文件一样)。然而udp(是一种基于信息包的通信)




       类似于快递这个过程的发件人(比如深圳**),首先我们必须知道,我们要将这个东西寄给谁(这里,发件人将东西寄送到了**省***大学(申通快递)),,tcp/ip也是类似的,因为每一台机器都有一个属于自己的ip地址,这样信息就可以过去了

  同时,我们也知道这个申通快递,存放了好多的快件等待着具体的学生来取,这个就类似与我们的操作系统支持多程序(进程),多服务(web,ftp,stmp服务)运行,此时(计算机上正运行着聊天窗口,web浏览器),计算机也需要知道是哪个程序来接受信息,这里也就引入了端口号可以简单地理解每一个程序都有一个唯一的端口号

         tcp的可靠稳定性:

         就是说,通过tcp传输的东西基本上不会丢失或是错误,除非整个网络出现问题

         1.为了防止数据在传输的过程中被损坏,被分成的小的信息包都包含一个校验码。(它就是来保证信息包在传输的过程中没有被更改),当信息包到达目的地的时候,接收的一方会对比校验码,如果校验码不对,将忽略这个信息 、、

             2.为了防止信息包丢失,tcp会要求接收方每收到一个信息包都反馈一下,如果接收方没有提供反馈,那么发送方会继续发送一遍。

          3.为了防止信息包顺序出现问题,tcp每发送一个信息包都会发送一个序号,接收方会检查这个序号,确保收到信息,并把收到的信息包按顺序来整理,重新合并,同时,接收方如果看到了一个已有的序号,也会自动的忽略的

   


端口号:

     端口分为两种:物理端口(连接物理设备之间的端口)和逻辑端口(逻辑上用于区分服务的端口),tcp/ip的端口都是,我们ip的端口是通过16位来进行编号的,所以范围是(0-65535)

       一般来说,服务器都是通过知名端口号来识别的:

        FTP服务器采用21号端口

        Telnet采用23号端口

        web服务器采用80号端口(http)

        WWW代理开放此端口(8080)

        总而言之,也就是说我们通过端口号就可以知道,计算机中那个程序(服务)来接受信息。


 

ip地址:

      ip地址被用来给internet上的一个电脑编号,每一台联网的计算机上都需要有ip地址,这样才可以正常的通信,IP地址是一个32位的二进制数,只是一般情况下,被分割成4个8位(每一个都是不超过255),最后再用“点分十进制数来表示”:也就是类似于192.168.1.1(路由器),192.168.0.1(本机),(119.75.218.70)百度,这些实际上就是32位二进制,常见的IP地址分为IPv4,IPv6(当然,ipv6的产生是因为ipv4不够发放了,满足不了我们的需求,拟通过ipv6来重新定义地址空间)、

       但是,由于一串数字诸如,192.168.1.1的记忆是非常困难的,也就紧接着出现了今天的DNS(domain name system)域名,当我们的计算机想要和远程机器建立连接的时候,我们可以申请连接该机器IP地址相对应的dns,例如www.baidu.com。dns会给我们提供一个IP地址,接下来就可以连接了。


你可能感兴趣的:(网络编程)