설계"이더넷

M

Mudugamuwa

Guest
안녕,

나 VHDL과 이더넷 MAC 디자인입니다.내가 가진 문제는 CRC를 존중 이더넷 프레임의 끝에있습니다.

난 어디에 CRC를 계산부터 시작해야 알고 싶어요.도서 보낸 사람이 데이터를 상위 레이어 계층 구조에서 ISO (레이어 3)에서 주어진부터했습니다.그 레이어 3의 첫 번째 바이트의 IP 버전 '에 따르면 0x04입니다.그래서 첫 번째 비트가 0이됩니다.이것은 내 문제를 내가 처음으로 비트 '1 'CRC를 계산해야한다고 생각 때문이죠.그래서 난 CRC를 계산하는 최초의 '1 '의 위치에서 시작하는지 알고 싶다.

난 정말 누구 도와줄 사람에게 감사.

안부 인사,
Sudeera.

 
"(이것은 무료 다운로드)의 공식 이더넷 명세"는 IEEE 표준 802.3-2005의 복사본을 잡고 절에 "로 시작하는 3.2.8 프레임 체크 시퀀스 (FCS)가 필드에".
http://standards.ieee.org/getieee802/
http://standards.ieee.org/getieee802/802.3.html

 
CRC가 값은 다음과 같은 알고리즘을 사용하여 계산됩니다.의사 헤더 IP 헤더 앞에 추가됩니다.

코드 :

pseudo_IP_header 구조체 / * 가짜 IP 헤더 (체크섬 계산기) * /

(서명 오래 int 소스, 대상;

숯불 zero_byte, 프로토콜;

서명되지 않은 짧은 TCP_UDP_len;

);/ 체크섬 * caculate * /

서명되지 않은 짧은 in_cksum (부호없는 짧은 * addr, int len)

(

int len = nleft 등록;

서명되지 않은 짧은 * 승 등록할 = addr;

int 형님 = 0 등록할;

서명되지 않은 짧은 대답 = 0;반면 (nleft "1)

(

합계 = * 승 ;

nleft -= 2;

)(nleft == 1)

(

* (u_char *) (& 답변) = * (u_char *) 승;

합계 = 대답;

)형님 = (형님 ""16) (합이 & 0xFFFF);

합계 = (형님 ""16);

답변 = ~ 형님;

반환 (답변);

)/ *

는 TCP 체크섬 수정

* /

무효 fix_tcp_checksum (서명 숯불 * 버피)

(

sp_pseudo_ip_construct [PKT_BUF_SIZE 숯불];

tcphdr 구조체 * sp_help_tcp;

pseudo_IP_header 구조체 * sp_help_pseudo;

iphdr 구조체 * ip_hdr;memset (, 0 sp_pseudo_ip_construct, PKT_BUF_SIZE);sp_help_tcp = (* tcphdr 구조체) (버피 IP_HEAD_BASE);

sp_help_pseudo = (pseudo_IP_header *) sp_pseudo_ip_construct 구조체;

ip_hdr = (iphdr *) 버피 구조체;sp_help_tcp - "체크 = 0;sp_help_pseudo - "소스 = ip_hdr -"saddr;

sp_help_pseudo - "대상 = ip_hdr -"daddr;

sp_help_pseudo - "zero_byte = 0;

sp_help_pseudo - "프로토콜 = 6;

sp_help_pseudo - "TCP_UDP_len =

htons (ntohs (ip_hdr - "tot_len) - ip_hdr -"ihl * 4);memcpy (sp_pseudo_ip_construct 12, sp_help_tcp,

ntohs (ip_hdr - "tot_len) - ip_hdr -"ihl * 4);

sp_help_tcp - "확인 =

in_cksum ((서명 짧은 *), sp_pseudo_ip_construct

ntohs (ip_hdr - "tot_len) - ip_hdr -"* 4 12) ihl;

)

 
아니, 그건의 IP 체크섬이야.그것은 이더넷 프레임의 CRC를 위해 관련이없는거야.

 
내가 이미 말한대로 ....그래서 다시 물어도 될까요???

 
CRC가 일반적으로 MSB는 계산이다.그래서 그런식으로 디자인을해야한다고 생각."데이터 및 컴퓨터 네트워크"으로 Stallings 당신을 위해 좋은 참고이다.

 
내 도서에 대한 링크를 보내주시기 바랍니다없습니다.내가 Edaboard 서적 장소를 검색합니다.하지만 유일한 솔루션을 수동으로했다.당신이 그것에 대해 얘기하지 않습니다 같아요.

감사합니다!
Mudu ...

 

Welcome to EDABoard.com

Sponsor

Back
Top