网络编程

网络协议

1、著名的OSI(Open System Interconnection)开放系统互连参考模型

 (1)  应用层:HTTP、FTP、SMTP、DNS、TELNET、HTTPS、POP3
 (2)  表示层:
 (3)  会话层:
 (4)  传输层:
      TCP和UDP
      TCP:面向连接的可靠的基于字节流服务的传输协议 
          面向连接:当用TCP传输数据之前,要先建立连接,用“三次握手”的方式
          可靠的:面向连接,所以可靠;TCP协议对于出错或丢失数据会要求“重发”
          基于字节流:
          因为是它面向连接的可靠的基于字节流服务的传输协议,所以它适合传输大量的数据。
      UDP:非面向连接的,不可靠的基于用户数据报服务的传输协议       
          非面向连接:当用UDP传输数据之前,不会去确认对方是否在,不管是否在,都会发送
          不可靠的:就算对方没收到,也不传了
          基于用户数据报:所有的数据要包装为一个“数据报”DatagramPacket的
          它有大小限制,64K以内。
 (5)  网络层:逻辑地址寻址,ip地址
      IPV4:32位 [0,255].[0,255].[0,255].[0,255]
      IPV6:IPv6的地址长度为128位,是IPv4地址长度的4倍,格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16位,以十六进制表示
 (6)  数据链路层:逻辑地址和物理地址对应    
 (7)  物理层:硬件
 
 2、实际中用一个4层的TCP/IP协议参考模型
 TCP/IP协议参考模型:因为TCP/IP这两个协议是最早指定标准的,用它俩代表一大堆协议,TCP/IP协议簇
               还因为这么多协议中,这两个是最重要。
(1)应用层:重要代表 HTTP,HTTPS
(2)传输层:重要代表 TCP/UDP
(3)网络层:重要代表 IP协议
(4)主机-网络层:硬件层面
 
网络通信的三个要素
 1、网络协议:
      对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
      通俗的比喻:通信的两端得保证能“听”得懂对方的话
 2、IP地址:
      负责能够把数据准确的送到对应的目的地
 3、端口号
      同一台主机上有很多的应用都要与网络通信,那么怎么区别?
      端口号就是区别每一个应用程序。
      
      同一个协议端口号不能重复。
      端口号是一个16位的整数,即在[0,65535]之间。
      (1)公认端口(Well-Known Ports)范围从0到1023,给特定知名服务
      (2)注册端口(Registered Ports):端口号从1024到49151。松散的绑定到一些服务。
          可以自己用,但是建议不要随便。
      (3)动态/私有端口(Dynamic and/Private Ports):端口的范围从49152到65535。操作系统自动分配

posted on 2019-04-28 23:09  光而不耀,静水流深  阅读(150)  评论(1编辑  收藏  举报

导航