网络编程入门(C++)

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

tcp/ip协议族

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

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

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

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

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

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

PING协议:基于ICMP协议

网络字节序

部分知识来源于博客:https://blog.csdn.net/z_ryan/article/details/79134980

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

  • 网络字节序是大端

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

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

套接字/句柄/SOCKET

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

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

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

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

三次握手四次挥手

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

网络编程入门(C++)相关推荐

  1. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  2. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  3. BIO,Socket网络编程入门代码示例,NIO网络编程入门代码示例,AIO 网络编程

    BIO,Socket网络编程入门代码示例 1.BIO服务器端程序 package cn.itcast.bio;import java.io.InputStream; import java.io.Ou ...

  4. Day14.网络编程入门及其应用

    网络编程入门及其应用 文章目录 网络编程入门及其应用 前言 一. 网络编程的入门 1.1 计算机网络基础 1.2 计算机网络发展史 1.3 TCP/IP模型 1.4 网络应用模式 二. 基于HTTP协 ...

  5. Day14:网络编程入门

    网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享.今天计算机网络中的设备和计算机网络的用户已经多得不可计数 ...

  6. P41 网络编程入门

    P41 网络编程入门 1.软件结构 2.网络通信协议 3.协议分类 4.网络编程三要素 4.1 协议 4.2 IP地址 4.3 端口号 系统:Win10 Java:1.8.0_333 IDEA:202 ...

  7. TCP原理,Socket与网络编程入门

    TCP原理,Socket与网络编程入门 开篇 从互联网的诞生以来,网络程序逐渐普及.计算机网络将各个计算机连接到一起使它们可以通信.在现代,网络已成为我们十分重要的一部分.这次不搞些费脑子的东西,就让 ...

  8. Linux网络编程 入门

    Linux网络编程入门 (转载) (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍 客户端和服务端          网络程序和普通的程序有一个最大的区别是网络程序是由两个 ...

  9. 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?

    本文由"小姐姐养的狗"原创发布于"小姐姐味道"公众号,原题<127.0.0.1和0.0.0.0地址的区别>,收录时有优化和改动.感谢原作者的分享. ...

  10. 脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    转载自 http://www.52im.net/thread-1732-1-1.html 1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式 ...

最新文章

  1. Linux Kernel TCP/IP Stack — L7 Layer — 高性能网络 I/O 服务器模型
  2. Tomcat - Tomcat 网络通信模型剖析 并发参数解读
  3. SAP创建生产订单时要求输入销售订单
  4. 如何轻松愉快的理解条件随机场(CRF)
  5. 中国电信与中国联通启动2.1GHz 5G主设备集采,规模24万站
  6. 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
  7. 被逼至“盗版合法化”,俄罗斯要把 RuTracker 放出来了?
  8. Ubuntu 安装 配置 Mysql
  9. 爬取斗鱼所有房间及直播源
  10. 系统集成项目管理工程师2022年上半年广东卷下午案例分析题及答案
  11. Python+vue设计并实现了宾馆酒店客房管理系统django flask
  12. 电脑重装系统如何远程控制电脑操作
  13. 如何开启WIN10卓越性能模式
  14. 计算机ifand函数补考科目,Excel函数公式:逻辑函数IF、AND、OR、NOT、IFERROR实用技巧解读...
  15. VM虚拟机双网卡配置
  16. 【用例设计】接口用例设计
  17. 北京linux学习 哪好呢?
  18. 短线看盘比较有效的方法
  19. 网站TDK三大标签SEO优化
  20. 基于五阶段流水线的RISC-V CPU模拟器实现

热门文章

  1. python中urllib2用法_python的urllib2包基本使用方法
  2. 前端数据展示为符号∞等情况
  3. bootstrap之navbar
  4. 全国计算机应用技术证书文字处理,全国计算机用技术证书考试.doc
  5. python倒序输出数字的程序_python输入一个整数倒序输出
  6. 高碳合金热轧耐磨钢球
  7. dockerfile中的env指令_11.dockerfile之ENV指令
  8. 【HTML】web网页设计
  9. Unity 画自定义网格
  10. 抽象类和抽象方法的使用