博客
关于我
00023.06网络协议概述(IP地址、端口号、网络协议、TCP、UDP、三次握手)
阅读量:611 次
发布时间:2019-03-12

本文共 1322 字,大约阅读时间需要 4 分钟。

系列文章目录

文章目录

前言

C/S和B/S结构分别代表客户端-服务器和浏览器-服务器两种应用架构。C/S结构中,客户端是由开发者编写的程序,而B/S结构的客户端通常是通用浏览器。例如,QQ和微信属于C/S架构,而网页版的京东、淘宝则采用B/S架构。

一、网络的概念和分类

网络的概念涵盖了多个方面,包括物理连接、数据传输、设备配置等。严格来说,我们常说的"外网"实际上指的是互联网,而不是独立的局域网或企业网络。互联网是由多个网络通过路由器连接而成的全球性网络系统。

二、网络通讯的三个要素

(1)IP地址

IP地址是网络通信中最基础的地址信息,用于定位一台网络设备。每个网络设备(如电脑、手机、服务器等)都有一个唯一的IP地址,地址格式通常为四组数字,例如192.168.1.1。

(2)端口号

端口号用于区分不同的网络应用程序或服务。在TCP/IP协议中,每个端口号都是一个16位的数字,范围在0到65535之间。端口号的作用是帮助数据包在传输过程中找到正确的应用程序或服务。

(3)网络协议

网络协议是数据在网络上传输过程中确保准确到达并正确解析的关键机制。常见的网络协议包括TCP、UDP、HTTP、HTTPS、DNS等。TCP和UDP是传输层的核心协议,负责数据的可靠传输和无连接性传输。HTTP和HTTPS则是应用层的协议,用于网页数据的传输。

OSI网络模型

OSI(Open System Interconnection,开放系统互连参考模型)是国际标准化组织提出的一套网络模型,将网络功能分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。每一层都有特定的功能:

  • 物理层:负责数据的物理传输,包括信号的传递和介质的连接。
  • 数据链路层:处理数据的分组和错误检测,使用MAC地址进行通信。
  • 网络层:负责网络地址的转换和路由选择,常用协议包括IP、ICMP、ARP、RARP。
  • 传输层:定义数据传输的可靠性和流量控制,常用协议包括TCP和UDP。
  • 会话层:建立和管理会话,确保不同主机之间的通信。
  • 表示层:处理数据的编码和解码,包括压缩、加密等功能。
  • 应用层:提供用户面向的网络服务,常用协议包括HTTP、FTP、DNS、SMTP等。

TCP和UDP的区别

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是两种常用的传输层协议,主要区别如下:

  • TCP:面向连接,提供可靠的数据传输,适用于大数据量和重要数据的传输。TCP会先进行“三次握手”建立连接,并在数据传输前进行数据校验和重传。
  • UDP:无连接,传输速度快,适用于对实时性要求高但数据可靠性要求不高的场景。UDP不会进行连接建立,也不会重传数据。

三次握手与四次挥手

TCP的可靠性是由于三次握手和四次挥手机制得以实现的。在发送数据之前,TCP协议会通过三次握手建立连接,确保双方通信准备就绪。连接断开时,需要进行四次挥手,确保所有数据都已传输并释放资源。

注意事项

IP地址、端口号、网络协议、TCP、UDP的具体实现细节将在后续文章中详细讲解。

转载地址:http://kqgxz.baihongyu.com/

你可能感兴趣的文章
ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
ntp server 用法小结
查看>>
ntpdate 通过外网同步时间
查看>>
ntpdate同步配置文件调整详解
查看>>
NTPD使用/etc/ntp.conf配置时钟同步详解
查看>>
NTP及Chrony时间同步服务设置
查看>>
NTP服务器
查看>>
NTP配置
查看>>
NUC1077 Humble Numbers【数学计算+打表】
查看>>
NuGet Gallery 开源项目快速入门指南
查看>>
NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
查看>>
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
查看>>
Nuget~管理自己的包包
查看>>
NuGet学习笔记001---了解使用NuGet给net快速获取引用
查看>>
nullnullHuge Pages
查看>>
NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
查看>>
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
查看>>
Number Sequence(kmp算法)
查看>>
Numix Core 开源项目教程
查看>>