inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình mạng sẽ thay đổi cuộc đời bạn nếu bạn hiểu nó

Phân tích header Ethernet và vấn đề LSO

ntohs() 와 htons() 함수의 차이

Đã giải quyết

337

cristiano

24 câu hỏi đã được viết

0


void packet_handler(u_char* param, 
					const struct pcap_pkthdr* header,
					const u_char* pkt_data) // pcap_loop()가 돌면서 패킷을 감지할때 그 때 읽어들인 감청 데이터는 pkt_data 에 들어간다.
{
	EtherHeader* pEther = (EtherHeader*)pkt_data; // 감청 데이터를 EtherHeader 로 형변환

	printf( "SRC: %02X-%02X-%02X-%02X-%02X-%02X -> "
			"DST: %02X-%02X-%02X-%02X-%02X-%02X, type:%04X\n",
			pEther->srcMac[0], pEther->srcMac[1], pEther->srcMac[2],
			pEther->srcMac[3], pEther->srcMac[4], pEther->srcMac[5],
			pEther->dstMac[0], pEther->dstMac[1], pEther->dstMac[2],
			pEther->dstMac[3], pEther->dstMac[4], pEther->dstMac[5],
			//ntohs(pEther->type)
			pEther->type
	);
}

ntohs(pEther->type) 과 htons(pEther->type)이 기능은 똑같다고 하는데, ntohs() 는 네트워크 오더 -> 호스트 오더 이고, htons() 는 호스트 오더->네트워크 오더 아닌가요?

제가 Intel 프로세스 탑재한 PC에서 예제 실행중인데, 위 코드와 같이 실행하면 Ipv4 인 type 값이 0008로 나옵니다. 그래서 htons() 로 감싸서 출력하면 0800 으로 잘되는데 ntohs() 로 감쌌을떄는 왜 0800 이 나오는지 모르겠습니다.

ntohs() 면 호스트 오더를 사용하는데 제 pc에서는 그대로 호스트 오더 방식으로 되야 하는거 아닌가요?

네트워크 winpcap npcap tcpip vc++

Câu trả lời 1

0

nullnull8537

ntohs()나 htons()나 이름만 다를 뿐 기능이 같습니다. 그건 어디까지나 개발자 본인이 알고 제대로 값을 넣어야 합니다. 그리고 PC가 인텔이라 하더라도 패킷 데이터 값은 네트워크 오더에 맞춰 보내줍니다. 참고하시기 바랍니다. 😄

강의 외 질문

0

66

2

맥에서 Window 가상화 프로그램 사용 문의

0

80

3

프로젝트 제안 수행에 대한 조언을 구하고 싶습니다.

0

92

2

컴퓨터가 여러 대 있는 환경에서의 질문입니다.

1

45

1

[자문자답] Windows 11 Evaluation VM Download

2

95

1

VMNet에 대한 질문 드립니다.

0

68

1

dispatcher_handler가 호출되는 시점

0

80

3

패킷 분석 너무 재밌습니다!!

0

80

2

안녕하세요 선생님 질문이 있습니다~

1

56

2

안녕하세용 선생님 질문이 있습니다~~

1

80

1

안녕하세요 선생님~~ 질문이 있습니다~~

1

98

1

프로토콜 헤더 암기

0

110

1

[Ethernet 채팅 프로그램 개발] 이런것도 가능할까요?

0

191

2

VMware Ethernet1이 없는 경우

1

247

2

socker buffer 에 관하여 문의 드립니다.

0

128

1

Windows 11 가상머신 다운로드 이슈 3

0

225

2

Windows 11 가상머신 다운로드 이슈 2

0

259

3

Windows 11 가상머신 다운로드 이슈

0

278

1

Basic_dump 수행 오류

0

170

2

이더넷 질문 드립니다.

0

155

1

윈도우10으로 해도 되나요??

0

206

1

유해 사이트 차단 프로젝트 관련 마지막 질문입니다..

0

226

2

유해사이트 차단 프로젝트 관련 질문입니다.

0

270

1

VMware Player

0

464

1