美文网首页程序员
传输模型和套接字

传输模型和套接字

作者: 梦捷者 | 来源:发表于2018-12-14 20:50 被阅读0次

    1、传输模型

    注意:TCP/IP协议不是TCP和IP两个协议的合称,而是指整个因特网中的TCP/IP协议的合称。

    2、TCP协议

    (1)TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    (2)建立连接模式(三次握手)

    (3)断开连接模式(四次挥手)

    3、UDP协议

    (1)UDP协议是无连接的、不可靠的协议。它只管发数据,不管收不收的到数据。

    (2)UDP协议和TCP协议的比较:

               a、UDP协议是不安全的,但是效率高。(不保证数据的完整性)   

                b、TCP协议是安全的,但效率不高。(保证数据的完整性)

    (3)TCP协议中如果数据丢失会进行重发,并且打包数据进行传输数据,但是UDP协议不会这样进行。

    注意:互联网中主要传输的两个协议是UDP协议和TCP协议。

    4、IP地址和端口

    (1)IP地址

                a、概念

                 IP地址是互联网协议地址,IP地址是是用来给Internet的电脑编号。

                b、IP地址格式

                  IP地址是一个32位的二进制数,通常用点分十进制来表示。IP地址由网络地址和主机地址组成。

               c、按网络规模分类

                 A类地址(大型网络)、B类地址(中型网络)、C类地址(小型网络)

               d、按照用途分类

                 公有地址和私有地址。公有地址是直接在互联网上使用的IP地址;私有地址是局域网中使用的地址。(A类私有地址的范围是10.0.0.1~10.0.0.254,B类私有地址的范围是172.16.0.1~172.31.255.254,C类私有地址的范围是192.168.0.1~192.168.255.254)

    (2)端口

                a、分类可以分为虚拟端口和物理端口

                虚拟端口指计算机内部或交换机内部的端口、不可见的。(比如计算机中的80端口、21端口、23端口)

                 物理端口又被称为接口,是可见端口。(比如RJ45网口)

    注意:计算机用整数表示端口;一台电脑有65536个端口,范围是0~65535.

    5、套接字

    (1)定义

                  a、套接字是基于TCP、UDP协议的一个接口(接口中封装实现相应的的功能)。

                  b、实现程序在网络中的通信。Socket是实现网络通信的基本技术之一。

                  c、大多数网络软件是基于Socket来进行实现的。

                  d、在进行通信之前,必须先要创建套接字对象。

    (2)python中使用套接字

       代码实例(创建一个简单的同步阻塞并发服务器):

        客户端代码:

        import Socket

        client=Socket.socket()

        client.connect(('填写服务器的地址',服务器的端口号))

        while True:

                data=input(">>>>>")

                if data=='q':

                            exit()

                 else:

                            client.send(data.encode("utf-8"))

                            res=client.recv(1024)

                            print(res.decode("utf-8"))

        client.close()

        服务端代码:

        import Socket

        tcp_server=Socket.socket()

        tcp_server.bind((' ',用一个端口号来指定服务器))

        tcp_server.listen(5)

         while True:

                        conn,adrr=tcp_server.accept()

                         while    True:

                                    res=conn.recv(1024)

                                     if   res:
                                                 print(res)

                                                 conn.sebd(res)

                                       else:

                                                conn.close()

                                                break

    相关文章

      网友评论

        本文标题:传输模型和套接字

        本文链接:https://www.haomeiwen.com/subject/yxxnhqtx.html