목록분류 전체보기 (102)
Automotive Software
무한 회귀를 피하기 위한 오류 ICMP 메시지의 무시 ICMP는 일반적으로 수신된 데이터그램에서 확인된 오류를 보고하는 목적으로 사용되는데, 이때 보고를 위해 발생된 ICMP 메시지가 오류를 포함하더라도 수신기에서는 추가적인 ICMP 전송 없이 해당 ICMP를 무시함 https://www.rfc-editor.org/rfc/rfc792 프라그멘테이션 프레임 오류 발생 시, 첫 프라그멘테이션에 대해서만 오류 보고 프라그멘테이션을 통한 프레임 수신 시 에러가 확인되면, 프라그멘테이션 오프셋(Fragment Offet) 필드가 0으로 설정된 프레임(대부분 첫 번째 프레임)에 한해서만 해당 오류에 대한 ICMP 메시지(ICMP Parameter Problem Message)가 발생됨 https://www.rfc-..
이더넷 수신기가 IP 다이어그램 내에서 잘못된 필드를 인지하면 ICMPv4의 Parameter Problem 메시지를 전송하여 송신기에 잘못된 부분을 알려 줄 수 있다. 이때 수신기는 이 메시지를 전송함으로써 송신기에게 해당 메시지가 처리되지 않음을 명시적으로 알리게 된다. IPv4에서는 대부분 헤더 옵션 필드에서 문제가 발생하며, IPv6에서는 헤더 필드상의 값이 처리 범위를 벗어나거나 옵션 중의 하나 또는 일부를 인지하지 못하는 경우에 종종 발생된다. ICMPv4 Parameter Problem Message Format 0 ------- 3 4 ------- 7 8 ------- 11 12 ------- 15 16 ----- 19 20 ----- 23 24 ----- 27 28 ----- 31 Ty..
이더넷 스택을 개발할 때 주로 와이샤크나 동일한 라이브러리를 사용하는 tcpdump를 사용하게 되는데, 이들 툴이 없이 소프트웨어를 테스트하다 보면 당혹스러운 경우가 종종 발생하게 된다. 그중 한 경우가 와이어샤크와 같은 모니터링 툴을 사용하여 테스트를 할 경우에는 잘 받아지던 이더넷 패킷이 모니터링 툴을 실행하지 않으면 어찌 된 일인지 받아지지 않는 경우이다. 이유야 다양하겠지만, 대부분의 경우 해당 수신 프레임상에 결함이 있어 최하위단인 NIC에서 아예 받아들이지 않는 경우인데, 예를 들어 MAC 주소가 11:22:33:44:55:66인 NIC에 목적지 MAC 주소를 22:33:44:55:66:77로 작성한 이더넷 프레임을 보낼 경우 당연히 이는 NIC에서 거절된다. 그런데 왜 와이어샤크를 구동한 상..
와이어샤크에서는 이더넷 프레임의 분석을 위해 두 종류의 필터가 제공되는데, 애플리케이션상에 표시되는 프레임을 제한함으로써 필터링 기능을 제공하는 디스플레이 필터와 실제 네트워크 레벨에서 부하를 줄여주기 위해 캡처링되는 프레임을 제한함으로써 필터링 기능을 제공하는 캡처 필터가 있다. 캡처 시점에 상관없이 적용 가능한 디스플레이 필터의 경우, 애플리케이션 상단에 위치한 디스플레이 필터 입력부에 원하는 필터 문법을 입력하면 된다. 필터링 조건은 기본적으로 아래와 같이 괄호와 관계연산자를 사용하여 구현하며, 캡처 필터와 달리 '.' , '=='와 같은 연산자를 사용하여 필터의 로직을 서술한다. (ip.addr==192.168.1.1||ip.addr==192.168.1.2) && not tcp && (udp.po..
체크섬은 왜 필요한가? 체크섬은 네트워크상에서 뿐만 아니라 플래시 메모리와 같은 저장장치상에서의 데이터 일관성을 확인하기 위한 수단으로 사용된다. 네트워크의 경우 대부분 데이터 전송 시에 발생되는 에러(예, 비트 손실 또는 중복)로 인해 일관성을 해치게 되는데, 프로토콜 내 특정 주소에 할당된 체크섬 영역에 정의된 범위만큼의 체크섬 값을 송신부에서 먼저 계산 후 기록하고, 수신부에서 동일한 공식으로 계산된 체크섬값과의 일치여부를 확인함으로써 일관성을 검증하게 된다. 저장장치상에서는 장치상의 오류(예, 메모리 셀 오류)로 인해 일관성을 해치는 경우가 대부분인데, 방식에는 차이가 있으나 데이터 기록 전 일관성 확인이 필요한 바이트 스트림의 마지막 부분에 체크섬값을 계산하여 추가하고, 데이터 기록 후 읽어 들..
많은 네트워크 프로토콜은 데이터 완결성 또는 일치성을 검증하기 위해 체크섬을 사용하는데, IP 계층의 경우 와이어샤크에서는 기본적으로 체크섬 오프로딩으로 인한 혼란을 회피하기 위해 체크섬에 대한 검증 기능이 비활성화되어 있다. 검증 기능 활성화를 위해서는 Edit -> Preferences -> Protocols -> IPv4에서 "Validate the IPv4 checksum if possible" option을 선택하면 된다.