网络编程入门教程02——IP和TCP/UDP

Python 网络编程 TCP/UDP 详细基础 1 基础概念 1.1 Linux Windows 命令行查看网络信息 Linux: ifconfig windows: ipconfig 开/关网卡:sudo ifconfig ###(网卡名) up/down 1.2 IP地址 IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP地址即在网络中标识一台. 阅读详情

上一篇我们介绍了OSI网络七层模型中的链路层和物理层,今天要介绍的内容是关于网络层和传输层。
还是先把OSI七层模型摆出来,如下图:
在这里插入图片描述

1. 网络层

在数据链路层中提到了每块网卡都有一个独一无二的MAC地址,数据由一块网卡传到另一块网卡需要知道对方的MAC地址。在知道对方MAC之后,如何将数据包发送过去呢?广播是种办法,即将数据发给本子网中的所有电脑,接受到数据的电脑比较自己的MAC地址是否匹配,决定是否处理。但是为了连接其他子网中的网卡,就需要引入网络地址,如IP地址。所以,网络层的主要协议就是IP协议。
关于IP地址:

  • IPv4: 范围0.0.0.0 ~ 255.255.255.255
  • 结合子网掩码来判别不同IP地址是否属于同一子网。192.168.1.125和192.168.1.100的子网掩码都是255.255.255.0,那么两者属于同一子网。

2. 传输层

在有了IP和MAC地址以后,就可以完成两主机间的网络传输。但是由于一台主机上可以有多个应用程序使用网络,如网页、聊天工具等,使用端口对不同的应用程序进行区分。传输层的一大主要作用就是指定端口。

  • 端口范围: 0 到 65535。0到 1023 的端口被系统占用,用户只能选用大于 1023 的端口。

2.1 UDP协议

传输层主要有两大协议:UDP (User Datagram Protocol ,用户数据报)和TCP (Transmission Control Protocol,传输控制协议)。两者的主要区别是UDP是面向无连接的;而TCP是面向连接的。

  • 面向连接和面向无连接:面向连接与打电话相似,双方必须先验证身份建立连接;而无连接就像寄信,寄出去就完事了。显然面向连接的更加可靠,但是面向无连接的速度更快。
  • UDP的主要作用:一个是为数据内容添加校验,二是添加了端口号。

2.2 TCP协议

  • 每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程。
  • TCP协议为数据增加了校验机制,防止收发数据出现错位,并提供确认-重传机制,保证数据能够完整发送成功。

3. 总结

介绍完网络层和传输层,再上面的就是应用层了。应用程序需要使用TCP/UDP+IP协议传输数据,虽然目前这些协议都集成在操作系统中了,但是使用起来还是会很复杂。因此操作系统提供了socket机制进行了封装,让我们可以不关心内部。将在下一节讲解。

【网络编程】——IP、TCP、UDP、ARP、ICMP结构 IP、TCP、UDP结构 IP首部 IP数据首部较为复杂,其结构为: /* IPv4 首部 */ typedef struct ip_header{ u_char ver_ihl; // 版本 (4 bits) + 首部长度 (4 bits) u_char tos; // 服务类型(Type of service) 阅读详情

相关推荐

STM32CubeMX 6.4.0 + STM32F407ZGT6 实战:基于YT8512C PHY的lwIP以太网配置与调试

本文详细介绍了使用STM32CubeMX 6.4.0为STM32F407ZGT6微控制器配置YT8512C PHY芯片,并成功移植lwIP以太网协议栈的实战过程。文章从硬件差异分析入手,逐步讲解时钟配置、ETH外设设置、PHY寄存器适配以及lwIP协议栈剪裁等关键步骤,旨在帮助开发者解决非标准PHY芯片的联网难题,最终实现网络连通与Ping测试。

n8m7b6v5c4的博客 593

linux基础——网络基础

文章目录网络基础网络中使用到的三种设备IP地址和IP地址的分类数据在局域网中如何传输数据跨网段传输基于TCP的网络编程 网络基础 所有的网络编程都是基于客户端和服务端的架构 网络协议也就是规则。 水晶头大小及网卡接线都是遵守的一种电气协议,而以太网卡、令牌环网卡则都是遵守一种逻辑协议。 网络通讯采用的协议是TCP/IP协议簇。 分别有: osi七层模型 TCP/IP协议分为四层或者五层: 应...

跑不了的你的博客 1066

如何处理NC数据?(Python和IDL语言实现)

如何处理NC数据?(Python和IDL语言实现) NetCDF(network Common Data Form)网络通用数据格式是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。(参考自:https://zhuanlan.zhihu.com/p/129351199) 在我看来,nc和hdf有异曲同工之妙,我用的数据以hdf结构为主(HDF:层次文件格式,相当于

zhanglingfeng1的博客 4636

linux系统路由器的配置

假设现有三台计算机A计算机有三块网卡 eth0: 192.168.1.125 连接到Internet。 eth1:192.168.2.1 。 eth2:192.168.3.1。B计算机 ip:192.168.2.120 默认网关:192.168.2.1C计算机 ip:192.168.3.114 默认网关:192.168.3.1现在B、C计算机要以A为路由器上网,并实现B、C网段之间的访问。A计算机配置:$/sbin/ifconfig eth0 192168.1.125 netmask 255.255.255

千城 1万+

从传统扫描到SSN:Tessent数据包技术如何减少90%测试时间

本文深入探讨了Tessent流式扫描网络(SSN)如何通过其核心的数据包技术,彻底改变芯片测试范式。该技术将测试数据封装成标准化数据包,在共享总线上进行智能路由与分发,实现了动态带宽分配与核心独立测试,从而将复杂SoC(如AI芯片)的总体测试时间大幅削减90%,并显著提升测试灵活性与可扩展性。

meat5的博客 490

手把手教你用ROS2控制PX4无人机画个圆:从C++代码到Gazebo仿真全流程解析

本文详细解析了如何使用ROS2控制PX4无人机实现圆形轨迹飞行,涵盖从C++代码编写到Gazebo仿真的全流程。重点介绍了Offboard模式下的控制算法实现、圆形轨迹生成的数学原理,以及解决通信延迟和坐标系转换等常见问题的实用技巧。通过实战案例,帮助开发者快速掌握无人机轨迹跟踪仿真的核心技术。

weixin_30839881的博客 95

spring cloud eureka pause shutdown service-registry 优雅下线重启总结

Spring cloud服务如何做到优雅下线 https://blog.csdn.net/yang920106/article/details/79081740

zhaoyang10的专栏 3186

OpenWrt路由开启DDNS+端口转发进行外网访问

OpenWrt路由开启DDNS+端口转发进行外网访问(LuCI界面实现)--开篇一、准备工作二、开机!三、连接--结尾 –开篇 本篇适用于一切装有OpenWrt系统的路由器/软路由,只要你保证有WAN接口和一个光猫,甚至你不需要有LAN接口(当然前提是你能连接路由器的WIFI进后台,不然你只能通过LAN进后台咯)。所有的配置过程都是基于LuCI界面来的,当然大神们一般都通过SSH登陆路由使用命令配置,但我也不会啊,只能给个有GUI界面的教程了。 一、准备工作 一个装有OpenWrt系统的路由器/软路由并

秋之颂的博客 9万+

计算机网络练习

拓扑图: PC端 PC1>ipconfig PC2>ipconfig PC3>ipconfig PC4>ipconfig PC>ping PC1>ping 192.168.1.125 PC1>ping 192.168.1.254 PC1>ping 192.168.1.253 PC2>ping 192.168.1.125 PC2>ping 192.168.1.253 PC3>

weixin_73921499的博客 873

数仓 - 促销敏感度、评论敏感度

1. 促销敏感度 步骤1. 首先按照最后一次下单时间及有无复购情况将用户分为四大群体: 近一年有购物行为且复购的用户 -- L1 (今年复购用户) 近一年有购物行为但无复购的用户 --L2 (今年一单购用户) 最后一次下单时间在1年之前且有复购的用户 --L3 (今年无购且只有一单用户) 最后一次下单时间在1年之前但无复购的用户 -- L4 (今年无购多单用户) 步骤2. 每一类用户群再根据优惠订单占比、每单优惠金额占比的平均值、优惠金额这三个指标进行k-means聚类,分为: 非常敏感 -

weixin_41332009的博客 1899

游戏引擎定制化:大厂如何玩转性能极限(大白话生动有趣版)

游戏大厂如何深度定制游戏引擎?本文系统解析了商业引擎的局限性及大厂定制化的核心诉求。主要内容包括: 大厂定制引擎的根本原因:性能瓶颈、差异化需求、自有生态整合等 主流引擎的优劣势对比及适用场景 定制化重点领域:渲染管线优化、物理系统重构、网络架构改造等 全流程定制方案:从需求分析到模块重构再到工具链开发 典型案例:如腾讯CF手游的渲染优化、原神的热更新系统等 文章指出,顶级游戏产品必须对引擎核心模块动刀,通过深度定制实现性能突破和创新功能开发。同时提供了风险规避建议和技术演进趋势,为游戏开发者提供了宝贵的实

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 635

windows网络编程,TCP/IP协议,UDP/IP协议

适用人群windows网络编程的初学者课程概述课程简介:这部教程是windows网络编程,包括两部分:tcp/ip协议编程与udp/ip协议编程课程内容:c/s模型的编码,5种windows网络模型:select,异步选择,事件选择,重叠io,完成端口,以及基础理论知识的讲解。课程代码会带大家一行一行书写,让大家都能够学会。课程适合人群:网络编程爱好者,网络编程初学者tcp/ip协议课程章节:第一章 c/s模型的讲解以及代码实现第二章 select模型的讲解以及代码实现第三章 异步选择模型的讲解以及代码实现第四章 事件选择模型的讲解以及代码实现第五章 重叠i/o模型的讲解以及代码实现第六章 完成端口模型的讲解以及代码实现第七章 tcp/ip基础知识的讲解,包括网络分层,三次握手,四次挥手,协议头等等。udp/ip协议课程章节:第一章 c/s模型的讲解以及代码实现第二章 select模型的讲解以及代码实现第三章 异步选择模型的讲解以及代码实现第四章 事件选择模型的讲解以及代码实现第五章 重叠i/o模型的讲解以及代码实现第六章 完成端口模型的讲解以及代码实现

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

本文讲述英飞凌TC3xx的通用计时器GTM的架构。

无所适从的我的博客 4596

网络编程(IP、端口、协议、UDP、TCP)【详解】

网络编程是可以让设备中的程序与网络上其他设备中的程序进行数据交互的技术。

qq_1424674116的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Java网络编程之UDP和TCP套接字

介绍使用Java如何进行网络编程, 主要有UDP和TCP两种方式; UDP的特点是无连接, 不可靠传输, 面向数据报, 全双工; TCP的特点是有连接, 可靠传输, 面向字节流, 全双工.

trong_ 的烂笔头 3791

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

网络编程(TCP、UDP)

网络编程(1)网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。(2)在程序员层面上,即要写一个应用程序通过调用传输层提供的API实现网络通信。

wuweixiaoyue的博客 2871

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

网络编程基础:C语言实现TCP/UDP通信

本文系统介绍了C语言网络编程的核心知识,重点讲解了TCP/UDP协议差异、Socket编程接口和实现方法。主要内容包括:1)网络基础概念如IP地址、端口、字节序转换;2)TCP/UDP协议特点对比及适用场景选择;3)Socket核心函数详解和编程流程;4)TCP服务器/客户端和UDP通信的具体实现。通过代码示例演示了网络字节序转换、地址结构体初始化、Socket创建等关键操作,为开发网络应用提供了实践指导。

今天比昨天更努力一点! 1万+

Java网络编程(两种聊天室:TCP和UDP)

Java网络编程,含TCP聊天程序以及UDP聊天程序

yangsf_的博客 5019

网络编程 UDP 和 TCP

介绍了网络编程的基本概念和Socket介绍,并介绍Java中UDP和TCP使用,通过一个UDP和TCP分别实现的回显服务器来练习

2401_89019969的博客 1461

【JavaEE】网络编程 TCP/UDP

网络编程~~~

做梦都想要三十万年薪~ 1851

网络编程(TCP与UDP协议)

TCP协议进行通信的两个应用进程:客户端、服务端。UDP协议进行通信的两个应用进程:发送端、接收端。

Lifelong learning 2494

嵌入式Linux网络编程——TCP/UDP

优快云仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。 本博文对应地址: https://hceng.cn/2017/12/30/嵌入式Linux网络编程——TCP_UDP/#more 本文主要记录TCP/UDP网络编程的基础知识,采用TCP/UDP实现宿主机和目标机之间的网络通信。 回想去年校招那会,笔试题老是出现TCP/UDP相关的内容。 那时...

hceng_linux 2164

TCP/UDP/IP报文大小

不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到64字节的帧的时候,抓包程序已经捕获了数据。中的概念,需要在 网卡中设置 的,如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。MTU值越大,封包就越大,理论上可增加传送速率,但 MTU值又不能设得太大,因为封包太大,传送时出现错误的机会大增。

路星辞*的博客 2546

网络编程(tcp和udp)socket

笔记摘自天明老师

weixin_45461296的博客 2018

Java-网络编程(UDP/TCP)

当一台计算机要与另一台计算机通信时,需要知道另外一台计算机的地址.互联网协议(Internet Protocol ,IP)可以用来唯一的标识互联网上的计算机.IP地址由4段用点隔开的0~255的十进制数组成例如,192.168.10. 2 .计算机上的每一个程序都会对应一个端口号.例如使用计算机可以进行E-Mail(邮件) WWW(浏览器) FTP(文件传输)操作. 这些程序都需要通过互联网进行数据的传输.计算机是通过端口进行的判断数据的归属,不同的程序有不同的端口.通信的两端都有Socket。

棉花糖老丫 1935

网络编程TCP与UDP

(1)为了更好应对和苏联的军事竞赛,1958美国成立了ARPA部门,开发了内部联网技术- ARPANET(因特网的前身)方便不同部门之间可以快速沟通,开发ncp协议作为早期网络的通信协议。(2)70年代末,随着链接ARPANET的电脑节点不断增加,美国开发了tcp/ip,并代替旧的网络通信协议(ncp)作为军事内部的标准通信协议(3)1983,ARPANET分裂成军用和民用两部分,民用部分随着全社会的加入,因特网从而开始崭露头角,这个是离不开tcp\ip协议的推进。(4)1984,国际标准化组织(iso)发

qq_59805046的博客 2387
上一篇: 网络编程入门教程01——网卡(MAC与PHY)
下一篇: 网络编程入门教程03——socket机制
隋边边
博客等级 码龄11年 304粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值