
Network
文章平均质量分 68
lamdoc
这个作者很懒,什么都没留下…
展开
-
要命的网络芯片RTL8021
今天终于把小模块的网络芯片RTL8021调通了。 RTL8021已经用了好几次了,一直没出过问题,但是整到这个小模块上来,网络一直没ping通。原理图没错,PCB没问题。与CPU连的前端测了没问题,后端RJ45网口+网络变压器测了,也没问题。但是传送接收数据线上就是没有载波出来。今天终于知道原因了,原来是RTSET引脚的下拉电阻(原本是2k/0402/%1的),被换成20k了,原创 2012-06-18 18:08:57 · 1171 阅读 · 0 评论 -
IEEE1588---PTP时钟同步协议
精确时钟同步协议PTP(Precision Time Protocol)是一种对标准以太网终端设备进行时间和频率同步的协议,也称为IEEE 1588,简称为1588。1588分为1588v1和1588v2两个版本,1588v1只能达到亚毫秒级的时间同步精度,而1588v2可以达到亚微 秒级同步精度。1588v2被定义为时间同步的协议,本来只是用于设备之间的高精度时间同步,随着技术的发展,1原创 2013-08-07 17:06:14 · 3338 阅读 · 0 评论 -
ifconf 和 ifreq 结构体
1. ifreq/* * Interface request structure used for socket * ioctl's. All interface ioctl's must have parameter * definitions which begin with ifr_name. The * remainder may be interface specifi原创 2013-08-27 11:30:44 · 739 阅读 · 0 评论 -
netmask的作用
netmask 是子网掩码的意思, 是用来分割网段用的 。设定任何网络上的任何设备,不管是主机、PC、Router等皆需要设定IP Address,而跟随着IP Address的是所谓的NetMask,这个NetMask主要的目的是使得从IP Address中也能获得NetworkNumber,也就是说IP Address和Net Mask作AND而得到Network Number原创 2013-08-27 10:22:23 · 1900 阅读 · 0 评论 -
几种基本套接字地址结构 sockaddr sockaddr_in sockaddr_in6
最近在看UNPV13E,这本书是基于unix系统的,头文件的目录和结构体定义跟linux系统不尽相同,但是这两个系统中C代码描述的TCP/IP协议内容最终含义都是差不多的。所以这里就使用linux系统的定义来描述了,如果想研究unix系统,可以去查4.4BSD-LITE 相关代码。1. 通用套接字地址结构:sockaddr定义在 include/linux/socket.h 中:原创 2013-08-29 11:00:43 · 1346 阅读 · 0 评论 -
libpcap库函数介绍
libpcap的英文意思是 Packet Capture library,即数据包捕获函数库。该库提供的C函数接口可用于需要捕获经过网络接口(只要经过该接口,目标地址不一定为本机)数据包的系统开发上。由 Berkeley大学Lawrence Berkeley National Laboratory研究院的Van Jacobson、Craig Leres和Steven McCanne编写。转载 2013-08-29 14:37:59 · 444 阅读 · 0 评论 -
sockaddr_ll ---设备无关的物理层地址结构
sockaddr_ll 定义:struct sockaddr_ll { unsigned short sll_family; __be16 sll_protocol; int sll_ifindex; unsigned short sll_hatype; unsigne原创 2013-08-27 13:05:54 · 1867 阅读 · 0 评论 -
linux中TCP协议涉及的代码及其架构
Linux中TCP协议相关的代码,主要位于 net/ipv4/tcp* 目录下, 这里只针对ipv4.具体有:net/ipv4/af_inet.c --- 这是网络协议层的接口,由他调用下面的TCP,UDP等协议层代码。net/ipv4/tcp.c --- TCP协议的普通代码,如初始化,close等net/ipv4/tcp_output.c ---TCP协议输出处理原创 2013-05-13 09:57:08 · 696 阅读 · 0 评论 -
TCP传输结束时传入一个序列号
TCP传输结束时,会调用两次 tcp_close(), 也就是发送两次FIN包,FIN就是finish的意思。具体的tcp close原理就不分析了,网上文章很多。这里想在发FIN包的时候,传入指定的序列号:sequence number,而且不影响数据包的收发。做法是,通过应用程序,调用inet的ioctl, 用来把指定序列号传递到内核,然后在内核把要发送的FIN包的序列号用指定的序原创 2013-05-07 13:40:35 · 553 阅读 · 0 评论 -
路由器和交换机有什么区别
一直都不清楚路由器和交换机的区别, 今天仔细查了查,终于弄明白了些.路由器 路由器和交换机的区别:交换机主要是实现大家通过一根网线上网,但是大家上网是分别拨号的,各自使用自己的宽带,大家各自上网没有影响,哪怕其他人在下载,对自己上网也没有影响,并且所有使用同一条交换机的电脑都是在同一个局域网内。路由器比交换机多了一个虚拟拨号功能,通过同一台路由器上网的电脑是共用一个宽带账号,大原创 2013-09-22 13:24:49 · 820 阅读 · 0 评论 -
iwlist iwconfig
iwconfig是Linux Wireless Extensions(LWE)的用户层配置工具之一。LWE是Linux下对无线网络配置的工具,包括内核的支持、用户层配置工具和驱动接口的支持三部分。目前很多无线网卡都支持LWE,而且主流的Linux发布版本,比如Redhat Linux、Ubuntu Linux都已经带了这个配置工具。1、iwconfig用法: iwconfig inte原创 2013-07-22 06:16:38 · 1617 阅读 · 1 评论 -
socket类型
流套接字(SOCK_STREAM):流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务。该服务并不原创 2013-12-12 11:25:31 · 548 阅读 · 0 评论 -
hostname解析原理
今天遇到个问题,启动系统的时候:Mounting local filesystems...Setting up networking...done.Hostname: none.Configuring network interfaces: done.Starting portmap daemon: portmap.Fast Replaying boot udev even原创 2012-07-16 10:01:21 · 825 阅读 · 0 评论 -
dm9620 usb转mac芯片
dm9620 是个带eeprom的usb转mac接口的芯片。这里解决了一个bug, 物理地址设置不进自身eeprom的问题,原因是linux版本不兼容,设置物理地址的接口没有实现:在dm9620_bind() 函数中,添加 dev->net->set_mac_address = dm9620_set_mac_address, 这样就实现了该接口。static int dm9620_原创 2013-07-16 14:04:35 · 870 阅读 · 0 评论 -
FAST/CTS 测试 adb连接
FAST/CTS 测试服务器一般都会用adb 与 开发板连接,1. 如果使用usb-otg时,需要一个serial number这个serial number 是在 启动的引导文件 cmdline 中添加 androidboot.serialno=0123456789ABCDEF 来完成的,之后getprop会自动识别[ro.serialno] = 0123456789ABCDEF原创 2012-07-02 18:08:05 · 670 阅读 · 0 评论 -
socket编程
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返 回一个整型的Socket描述原创 2013-02-22 11:00:33 · 320 阅读 · 0 评论 -
PHY芯片88E3019驱动设计
在ST解码器方案中,用了Marvell的PHY芯片88e3019。在SDK中并没有该芯片的驱动,只有一个88e1111的驱动。看了两天源代码,发现只要加个phy_driver结构体就行了。具体代码如下: /* 88e3019 phy_driver */ { .phy_id = 0x01410e20, // from datasheet page 42原创 2012-06-18 18:12:04 · 1217 阅读 · 0 评论 -
检测 android ethernet 支持 IPV6 否
如果路由器或交换机不支持IPv6, 则把开发板与PC直连。现在的phy应该都支持直连,不许要特定交叉或直连线了。1. busybox ifconfig -a : 查看本地IPV6 地址root@android:/ # busybox ifconfig -a eth0 Link enca原创 2012-06-26 08:17:30 · 1947 阅读 · 0 评论 -
android 设备 ethernet multicast 功能测试
ST 的android 网络电视设备,让测一个multicast address filtering. 1. 首先当然是先测 multicast 功能了.这里在网上搜了个软件,专门android上测试 multicast 功能的软件: multicast_test.apk光有这个软件还不够,还需要向网络发送 multicast package 的源,send_mdns.pl 就原创 2012-07-18 16:05:59 · 996 阅读 · 0 评论 -
net_device & net_device_ops
1. net_device在内核中代表一个网络设备。网络设备驱动程序只需要填充net_device的具体成员,并注册net_device 即可实现硬件操作函数与内核的挂接。net_device 是一个巨型结构体,包含了网络设备的属性描述和接口操作:/* * The DEVICE structure. * Actually, this whole structure is a b原创 2012-08-17 12:28:37 · 3527 阅读 · 0 评论 -
linux网络结构概述
1. linux 为用户提供了完善的,强大的网络功能。a. 完善的内置网络。其他操作系统不包含如此紧密的和内核结合在一起的网络部分b. linux免费提供了大量支持internet的软件。c. 用户能通过一些linux命令完成内部信息或文件传输,如 scp, wget 等命令。d. 远程访问。vnc, ssh, telnet等。e. 安全可靠。linux采取了许多安全技术,包括原创 2012-06-28 08:57:36 · 464 阅读 · 0 评论 -
a simple net device driver
#include #include #include static intmynet_open(struct net_device *netdev){ printk("mynet interface is up\n"); netif_start_queue(netdev); return 0;}static intmynet_stop(struct net_device原创 2012-08-20 17:54:02 · 685 阅读 · 2 评论 -
Linux网络设备驱动架构
Linux网络设备驱动程序的体系结构如下图所示:从上到下可以划分为4层,依次为:--- 网络协议接口层: 向网络层提供统一的数据包收发接口。--- 设备层: 向协议接口层提供统一的用于描述具体网络设备的属性和操作的结构体 net_device.--- 驱动层: 驱动层的各函数是net_device 数据结构的具体成员,使设备硬件完成相应动作的程序。---原创 2012-08-15 17:28:02 · 1229 阅读 · 0 评论 -
sk_buff 定义及其操作
1. sk_buff 结构体可以看出 sk_buff 结构体很重要, sk_buff --- 套接字缓冲区,用来在linux网络子系统中各层之间数据传递,起到了“神经中枢”的作用。当发送数据包时,linux内核的网络模块必须建立一个包含要传输的数据包的sk_buff,然后将sk_buff传递给下一层,各层在 sk_buff 中添加不同的协议头,直到交给网络设备发送。同样,当接收数据原创 2012-08-16 14:17:46 · 3422 阅读 · 3 评论 -
Linux网络设备驱动层设计
本篇主要描述linux网络设备驱动层的各主要函数和数据结构:包括设备注册和注销,设备初始化,数据包接收发送函数,打开和释放函数等。1. 网络设备驱动的注册和注销register_netdev(struct net_device *dev) --- 注册一个网络设备函数定义如下:/** * register_netdev - register a network d原创 2012-08-20 16:34:18 · 1400 阅读 · 0 评论 -
tcpdump_vlan_vconfig_ip
1. tcpdump : 可以查看网络传输状况如: sudo tcpdump或sudo tcpdump -i eth02. vlan: 虚拟局域网VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。vlan的作用:通过将企业网络划分原创 2012-09-03 09:44:04 · 671 阅读 · 0 评论 -
usb_gadget_ethernet
最近接触了一个usb接口的网络设备,用的是一个SMSC95xx的一个芯片开始只在 Device Drivers ---> [*] USB support ---> USB Gadget Support ---> 中, 设置了: USB Gadget Drivers (Ethernet Gadget (with CDC Ethernet support)) ---> (原创 2012-09-14 18:01:18 · 755 阅读 · 0 评论 -
ntohs()_ntohl()_htons()_htonl() 这几个函数的作用
看如下代码:#include int main(void){ int i = 0x12345678; int y = 0; //先看看各种数据类型的大小 printf("sizeof int = %d \n", sizeof(int)); printf("sizeof short int = %d \n"原创 2013-01-21 11:21:37 · 539 阅读 · 0 评论 -
nmap
一个强大的网络嗅探工具:原创 2014-06-08 21:50:02 · 635 阅读 · 0 评论