网络编程学习笔记(更新中)

  IP地址,端口,URL:

IP地址:用来标识网络中的一个通信实体的地址。通信实体可以是计算机、路由器等。 比如互联网的每个服务器都要有自己的IP地址,而每个局域网的计算机要通信也要配置IP地址。路由器是连接两个或多个网络的网络设备。目前主流使用的IP地址是IPV4,但是随着网络规模的不断扩大,IPV4面临着枯竭的危险,所以推出了IPV6。

端口:IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,端口被用来区分这些不同的程序。端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。 端口的表示是一个16位的二进制整数,对应十进制的0-65535。

URL:在www上,每一信息资源都有统一且唯一的地址,该地址就叫URL(Uniform Resource Locator),它是www的统一资源定位符。URL由4部分组成:协议 、存放资源的主机域名、资源文件名和端口号。如果未指定该端口号,则使用协议默认的端口。例如http 协议的默认端口为 80。 在浏览器中访问网页时,地址栏显示的地址就是URL。

  网络通信协议:

      OSI七层协议模型

图12-1 七层协议模型.png

      TCP/IP网络通信协议是OSI模型的具体实现。

图12-2 开放系统互连参考模型与TCPIP参考模型对比.png

  TCP协议:

在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据。TCP是面向连接的,传输数据安全,稳定,效率相对较低。

 TCP(Transfer Control Protocol)是面向连接的,所谓面向连接,就是当计算机双方通信时必需经过先建立连接,然后传送数据,最后拆除连接三个过程。

TCP在建立连接时又分三步走(三次握手Three-way Handshake):

      第一步:是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。

      第二步:服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。

      第三步:客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。然后才开始通信的第二步:数据处理。

  UDP协议:

称为数据报通信方式。在这种方式中,每个数据发送单元被统一封装成数据报包的方式,发送方将数据报包发送到网络中,数据报包在网络中去寻找它的目的地。

UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得。

大量的非核心数据可以通过UDP方式进行传递。 UDP是面向无连接的,传输数据不安全,效率较高。

  Socket套接字:

我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层和传输层之间,使用套接Socket来进行分离。

套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,是不知道也不需要知道的,也不会关心它如何传输,这属于网络其它层次工作。

Socket实际是传输层供给应用层的编程接口。Socket就是应用层与传输层之间的桥梁。使用Socket编程可以开发客户机和服务器应用程序,可以在本地网络上进行通信,也可通过Internet在全球范围内通信。

TCP套接字通信双方须链接,且有主次之分。UDP套接字无须链接,通信双方平等。

图12-5 Socket的作用.png

  数据封装与解封:

1.数据发送处理过程

        (1)应用层将数据交给传输层,传输层添加上TCP的控制信息(称为TCP头部),这个数据单元称为段(Segment),加入控制信息的过程称为封装。然后,将段交给网络层。

        (2)网络层接收到段,再添加上IP头部,这个数据单元称为包(Packet)。然后,将包交给数据链路层。

        (3) 数据链路层接收到包,再添加上MAC头部和尾部,这个数据单元称为帧(Frame)。然后,将帧交给物理层。

        (4)物理层将接收到的数据转化为比特流,然后在网线中传送。

2.数据接收处理过程

        (1)物理层接收到比特流,经过处理后将数据交给数据链路层。

        (2)数据链路层将接收到的数据转化为数据帧,再除去MAC头部和尾部,这个除去控制信息的过程称为解封,然后将包交给网络层。

        (3)网络层接收到包,再除去IP头部,然后将段交给传输层。

        (4)传输层接收到段,再除去TCP头部,然后将数据交给应用层。

  网络爬虫:

从网络上获取数据的过程。

1.给一个URL

2.下载资源

3.分析资源(使用正则表达式)

4.操作数据

猜你喜欢

转载自www.cnblogs.com/augenstern/p/12670659.html