网络编程——1、协议基础

本文介绍了TCP/IP协议的基础知识,包括协议简介、端口的作用和分类、IP地址的类型以及MAC地址。接着讲解了socket在进程间通信中的角色,以及UDP网络通信和TCP通信模型。还提供了模拟QQ聊天的多线程实现示例,以及Wireshark抓包工具和TFTP下载器的使用方法。最后,文章探讨了UDP广播和TCP服务器、客户端的实现原理。
摘要由CSDN通过智能技术生成

网络编程——1、协议基础,本篇。

网络编程——2、通信基础,点击此处

网络编程——3、服务器基础,点击此处

本篇包括网络编程概述、UDP简介、TFTP简介、TCP编程等。

目录

一、tcp/ip协议简介

二、端口

三、IP地址

四、MAC地址

五、socket简介

六、UDP网络通信过程

七、模拟QQ聊天-多线程实现 

八、wireshark抓包工具的使用

九、tftp下载器的使用(tftpd64或tftpd32)

十、UDP广播

十一、TCP服务器、客户端简介及实现

11.1 TCP简介

11.2 TCP和UDP通信模型

11.3 python实现tcp服务器和客户端

一、tcp/ip协议简介

tcp/ip不是两个协议,而是一个协议族,实际为4层,逻辑上可以为7层,如下图所示:

二、端口

为什么使用端口?只有ip地址时只知道发往哪个电脑而不知道发往哪个程序,端口用来辨识要发往的具体程序。

为什么不用PID辨识进程?因为进程是动态的,远端电脑可能不知道本地的pid号。

知名端口:大家都知道的约定好的端口,如80端口为HTTP服务,21端口为FTP服务,范围为0~1023。

动态端口:用户自己定义的端口,范围为1024~65535.

查看端口命令:netstat  -an

注意:在同一个OS中,端口不允许相同,如果某个端口已经被使用了,那么在这个进程释放这个端口之前,其他进程不能使用这个端口。因为端口用来区分一个进程。

三、IP地址

用来逻辑上表示网络上的唯一一台电脑。

注意:一个电脑可以有多个网卡,即多个IP地址!

IP地址分类

其中网络号固定不变,表示位于同一网络中的电脑,主机号为当前网络中的电脑号。

主机号为0时表示网段号,主机号为255时为网关

D类用于多播(不是广播),例如视频会议,只有一些人可以看到。

E类实验和开发用。

私有ip

用于局域网中,访问公网时不能使用,需要转换为公有ip访问外网。范围如下:

注意

IP地址127.0.0.1~127.255.255.255用于回路测试,即测试当前电脑tcp/ip协议能不能用,例如ping 127.0.0.1,即使拔掉网线也能ping得通。

四、MAC地址

网卡的序列号,形如XX:XX:XX:XX:XX:XX,六组十六进制数,前三组表示厂商序列号,后三组表示网卡序列号。

五、socket简介

socket:通过网络使进程间通信。

注意:一个进程可以有多个socket!

python测试程序如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Internet普及的今天,作为Internet工作基础的TCP/IP协议及其编程已经成了IT人业人员所要具备的基本知识与技能。打开国内外各大知名网站的招聘页面,都可以看到类似于“熟悉TCP/IP协议、掌握socket通讯开发”等字样的要求。本书就是为了满足读者在这方面知识的需求而编写的一本TCP/IP协议与基于TCP/IP编程方面的书籍。 本书有以下几个方面的特点: (1)内容的组织上按照协议原理与协议编程分为上、下篇。上篇主要介绍TCP/IP协议簇中的常用协议,下篇专门介绍网络编程知识与技能。 (2)具体在编写每一节的内容时将原理知识与实用技能融为一体。以方便读者学习。 (3)考虑到TCP/IP协议比较抽象,学习起来有一定的难度,所以全书尽量避免使用晦涩难懂专业术语,而用浅显易懂的语言说明问题,努力将书打造成一本人人都读懂书籍。 (4)初学网络程序设计的人员,往往感到网络程序设计内容多,学习进来比较复杂。针对这一问题,本书在讲解网络程序设计时,根据网络程序固有的特点,先总结了网络程序设计的通用模式,然后再举例说明网络程序的设计,使读者易于入手。 (5)Winsock函数内容多,使用起来比较复杂,针对这一问题,笔者在写作时将常用的Winsock函数分散到各种实例中去介绍,然后在最后一章将所有常用的Winsock函数一一作了较为详细说明,并在每个函数后面加入了其应用实例或使用说明。 本书分为上、下两篇内容,上篇内容包含6章,各章主要如下: 第1章:介绍了TCP/IP协议的产生、结构和工作原理,另外本章内容中还简要介绍一一下ISO/OSI RM。 第2章:介绍TCP/IP协议层次结构中网络接口层包含的内容,主要有物理层和数据链路的相关知识。 第3章:介绍TCP/IP协议层次结构中网络层及其相关知识。主要内容有IP数据报格式、IP层的功能、IP地址、ICMP协议、地址转换协议并介绍了IP的最新版本IP v6等。 第4章:介绍TCP/IP协议层次结构中传输层及其相关知识。主要内容有端口的概念、TCP协议和UDP协议协议数据格式、协议原理和TCP协议与UDP协议的比较等内容。 第5章:介绍TCP/IP协议层次结构中应用层及其相关知识。主要内容有应用层常用协议DNS、FTP、Telnet、HTTP、POP和SMTP的格式、工作原理、协议实例等内容。 第6章:简要的介绍了一下TCP/IP协议在Windows和LINUX操作系统下的实现原理TCP/IP协议的二进制代码。 下篇包含以下6章内容: 第7章:介绍了网络程序设计有关的基础知识、一个网络程序入门实例和Winsock中编写网络程序常用的建立连接、传输数据、关闭连接等有关的函数。 第8章:介绍了TCP程序设计流程、基于C/C++的TCP程序设计实例和基于Java技术的TCP程序设计实例。 第9章:介绍了UDP程序设计流程、基于C/C++的UDP程序设计实例和基于Java技术的UDP程序设计实例。 第10章:介绍了使用MFC中提供的有关类进行网络程序设计知识。 第11章:介绍了Winsock API中各种函数的功能,并举例说明了些函数的使用方法。 本书在编写过程中得到了邮电出版和刘博等编辑的大力支持和帮助,在此表示感谢。由于作者水平有限,错漏之处在所难免,欢迎广大读者批评指正和提出宝贵的意见,可发邮件到。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值