网络编程入门(C++)

338 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

网络编程入门(C++)

  • 下层为上层提供服务
  • 每一层都有属于自己的包体结构

tcp/ip协议族

名词业务描述
应用层DNS、HTTP、FTP、PING软件程序
传输层TCP、UDP操作系统
网络层ICMP、IP、ARP操作系统
物理层物理网络 双绞线、无线网、光纤硬件设备

ARP:协议的主要功能是将IP地址解析为物理地址 ARP欺骗攻击

ICMP:报文协议 用于确认消息是否可达

IP协议:IP提供不可靠的,无连接的数据传送服务。

TCP协议:提供可靠的连接服务 基于IP

UDP协议:提供可靠的连接服务 基于IP

PING协议:基于ICMP协议

网络字节序

部分知识来源于博客blog.csdn.net/z_ryan/arti…

  • 大端”和”小端”表示多字节值的哪一端存储在该值的起始地址处;小端存储在起始地址处,即是小端字节序,大端存储在起始地址处,即是大端字节序

  • 网络字节序是大端

TIPS:   网络字节序转化为主机字节序时,一定要注意是否需要转换。网络字节序采用大端(big-endian)排序方式。主机字节序采用小端(big-endian)排序方式。字节序是指大于一个字节类型的数据在内存中的存放顺序。该知识点是在跨平台和网络编程中时常要考虑的问题。    大端字节序:最高有效位排放在内存中的低地址端,最低有效位排放在内存中的高地址端。小端字节序:最低有效位排放在内存中的低地址端,最高有效位排放在内存中的高地址端。

  如图,当以不同的存储方式,存储数据为0x12345678时: 效果图

套接字/句柄/SOCKET

  套接字类似于指针,绑定了对端的IP和端口的一个暴露的值。

流套接字(SOCK_STREAM): TCP的控制协议。

数据报套接字(SOCK_DGRAM): 报文协议 UDP。

原始套接字(SOCK_RAW): 最原始的底层协议,可以手动实现TCP和UDP的底层。

三次握手四次挥手

专有名词作用
ACK确认是否有效 值为1
seq序列号标记位
SYN请求建立连接 值为1
FIN希望断开连接

效果图

效果图

版权声明:本文为CSDN博主「ufgnix0802」的原创文章:
原文链接:(blog.csdn.net/qq135595696…)