网络编程基础(二)

一.网络协议

        1.网络协议是什么?

        网络协议是指在计算机网络中,用于规定数据通信和交换规则的一组约定和规范。网络协议定义了数据在网络中的传输格式、传输速率、错误检测和纠正机制、数据压缩和加密方式等方面的规则,以确保不同设备之间能够有效地进行通信和数据交换。

        网络协议通常包括两个主要方面:语法和语义

                语法: 定义了数据的格式和结构,包括数据包的头部、数据字段、校验和等信息。

                语义: 定义了数据的含义和解释方式,包括数据的操作、响应和错误处理等。

        2.常见的网络协议

        以下是一些常见的网络协议:

        常见的网络协议在TCP/IP模型中所对应的层级关系:

3.TCP(灰常重要哦)协议

        (1)TCP协议简介

        TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流传输层协议,用于在计算机网络中提供可靠的数据传输服务。TCP协议是TCP/IP协议套件中的一个重要组成部分,负责在通信的两端建立连接、传输数据、进行数据确认和错误处理等操作。

        TCP协议提供了一种可靠、高效的数据传输服务,广泛应用于互联网、局域网和广域网等各种网络环境中。TCP协议的设计和实现为网络通信提供了重要的基础,促进了不同设备和系统之间的互联互通。

        (2)TCP协议的主要功能和特点

        面向连接: TCP在通信的两端建立连接,确保通信的双方能够进行数据传输和交换。连接的建立和终止是通过三次握手和四次挥手(后面单独出章节来讲)来完成的。

        可靠性: TCP提供可靠的数据传输服务,通过序列号、确认应答、超时重传、流量控制和拥塞控制等机制(高可靠性的原因)来确保数据的完整性和可靠性。

        面向字节流: TCP是基于字节流的协议,将数据分割成数据段进行传输,而不保留数据包的边界信息。这样可以提高数据传输的效率和灵活性。但是这样不保留数据包边界信息的操作,也为后来的沾包造成问题

        流量控制: TCP使用滑动窗口机制来进行流量控制,确保发送方和接收方之间的数据传输速率能够适应网络的吞吐量。

        (3)TCP适用场景

        适合于对传输质量要求较高的通信

         在需要可靠数据传输的场合,通常使用TCP协议

        MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

4.UDP(灰常重要)协议

        (1)UDP协议简介

        UDP(User Datagram Protocol,用户数据报协议)是一种简单的、无连接的、面向数据包传输层协议,用于在计算机网络中提供非可靠的数据传输服务。UDP协议同样是TCP/IP协议套件中的一个重要组成部分,与TCP协议相比,UDP更加轻量级、简单和高效。

        尽管UDP无法提供像TCP那样的可靠性和流量控制,但在某些特定的应用场景下,UDP协议仍然具有重要的作用。例如,在实时音视频传输、网络广播、网络游戏和传感器数据传输等领域,UDP被广泛应用。UDP协议的设计简单、高效,为网络通信提供了一种轻量级的数据传输方式。

        (2)UDP协议的主要功能和特点

        无连接: UDP是无连接的协议,通信的双方不需要建立连接,可以直接发送数据包。这样可以减少建立连接和维护连接的开销,提高数据传输的效率。

        不可靠性: UDP提供的是非可靠的数据传输服务,数据包的发送和接收没有确认机制,也没有重传机制。因此,UDP无法保证数据的完整性和可靠性。

        面向数据包: UDP是面向数据包的协议,每个数据包都是一个独立的单元,没有数据流的概念。每个数据包包含了目标端口号、源端口号、数据长度和校验和等信息。

        低延迟: 由于UDP不需要建立连接和进行数据确认,因此具有较低的延迟。这使得UDP适用于对实时性要求较高的应用场景,如音视频传输、在线游戏等。

        广播和多播: UDP支持广播和多播功能,可以将数据包发送给多个接收方,提高数据传输的效率和灵活性。

        (3)UDP适用场景

        发送小尺寸数据(如对DNS服务器进行IP地址查询时)。

        适合于广播/组播式通信中。

        MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议。

5.TCP/UDP相同点和不同点

        相同点:都存在于传输层,全双工通信

        不同点:

        TCP(即传输控制协议),全双工通信、面向连接、可靠,是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。

        UDP(User Datagram Protocol)用户数据报协议,全双工通信、面向无连接、不可靠,不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输

二.端口号

1.什么是端口号?

        端口号是计算机网络中用于标识不同应用程序或服务的逻辑地址,是TCP/IP协议中的一个重要概念。在TCP和UDP协议中,通信的双方通过端口号来确定数据包应该被发送到哪个应用程序或服务。

        端口号一般由IANA (Internet Assigned Numbers Authority) 管理,用两个字节进行管理。

2.端口号范围:

        众所周知端口(被占用),1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)。

        已登记端口:1024~49151(----可用来建立与其它主机的会话----) 

        动态或私有端口:49152~65535 (--固定某些服务使用--)

3.端口号与IP地址组合: 

        在计算机网络中,一个数据包的目标地址由IP地址和端口号组合而成。IP地址用于标识主机或设备,端口号用于标识主机上的应用程序或服务。因此,一个完整的网络通信需要指定目标主机的IP地址和目标应用程序的端口号。

4.端口号的作用: 

        端口号的作用是在主机上同时运行多个应用程序时,通过端口号来区分不同的应用程序。当数据包到达主机后,操作系统会根据端口号将数据包传递给相应的应用程序,从而实现数据的正确传输和处理。

总的来说,端口号在计算机网络中起着非常重要的作用,通过端口号可以实现多个应用程序之间的并发通信,确保数据包能够准确地到达目标应用程序。端口号的合理分配和使用是网络通信的关键之一。               

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值