no image
포트(Port) 상세 내용과 MAC / IP / Port 주소가 포함된 헤더 위치
지난 번에, 물리와 논리 포트 개념을 구분해서 설명했습니다. # 물리/논리 포트 설명 링크 물리/논리 포트(Port) 개념 이번에는 MAC, IP, Port 주소가 포함된 헤더 위치와 Port에 대해 조금 더 상세한 내용을 설명하겠습니다. MAC / IP / Port 주소 헤더 위치 MAC, IP, Port 주소가 포함된 헤더 위치는 위의 그림과 같습니다. 각 헤더에 다른 내용들도 포함되어 있지만, 주소 위주로만 정리했으니 참고하시기 바랍니다. MAC 주소는 Ethernet 헤더에 위치해 있고 IP 주소는 IP 헤더에 위치해 있으며, Port 주소는 TCP 또는 UDP 헤더에 위치하고 있습니다. 이 내용을 통해, 주소들을 계층별로 구분한 것을 유추할 수 있네요. Socket Address(소켓 주소) 어..
2022.04.04
TCP Keepalive 개념과 주요 설정값
TCP는 연결지향형 프로토콜입니다. 그리고 연결의 개념을 위해 TCP 서버와 클라이언트로 구분합니다. TCP에는 Keepalive라는 개념을 도입하여, 연결이라는 개념을 보완시켜줍니다. 그리고 Keepalive 개념에는 타이머, 인터벌, 프로브의 개념도 도입되는데 지금부터 정리해보겠습니다. Keepalive 타이머 TCP 연결이 설정된 이후에 정상적인 상황이라면, FIN 메시지를 송수신 했을 때, 연결이 해제됩니다. 하지만, 전원이 차단되거나 오류에 의해 오동작을 하면 하나의 단말만 연결이 유지되는 상태가 되며 이를 Half Open Connection 이라고 합니다. 이런 현상을 막기 위해 Keepalive라는 타이머가 있습니다. Keepalive의 매커니즘은 다음과 같습니다. 패킷을 수실할 때마다 재..
2022.04.04
TCP Out-of-order(OOO)와 Out-of-band(OOB)
TCP에서 Out-of-order와 Out-of-band라는 용어를 접할 수 있습니다. 간혹 같은 기능인데 용어가 다른 경우가 있어서 이 용어들도 같은 의미로 생각했지만, 실제로 조사해보니 다른 내용이었습니다. 각 용어에 대한 정리를 해보겠습니다. Out-of-order(OOO) TCP 세그먼트가 송신된 순서와 다르게 비순차적으로 수신되는 현상입니다. 어떠한 기능은 아니고, 위에서 설명한 것처럼 하나의 현상으로 생각하시면 됩니다. 복잡한 네트워크망에서는 End-to-End 간의 데이터 교환 시, 경로가 여러 개가 생기거나 각 프로토콜의 알고리즘 및 기능에 의해 비순차적으로 데이터가 전송될 수 있습니다. Out-of-band(OOB) TCP에서 긴급한 데이터는 다른 데이터들과 달리 전용 버퍼를 가지고 있는..
2022.04.04
no image
Ethernet PHY Extended Register 개념과 Pseudo-code
IEEE802.1 Clause 22에 따르면, Ethernet PHY는 32개의 레지스터를 제어할 수 있습니다. 하지만, 가끔 32개 이상의 레지스터를 제어할 수 있다고, Datasheet에 적혀있는 PHY들이 있습니다. 자료조사한 바에 따르면, 이 개념은 Extended Register 라고 많이 표현합니다. 혹은 Page 라고 표현하기도 하는데, Page라는 용어는 이미 쓰이고 있는 부분들이 많아서 이 글에서는 Extended Register라고 표현하겠습니다. Extended Register 개념 https://ww1.microchip.com/downloads/en/DeviceDoc/VMDS-10494.pdf 위 링크의 Datasheet를 보면 아래와 같은 설명이 있습니다. 확장 페이지 1 레지스터..
2022.03.07
NLP(Normal Link Pulse), FLP(Fast Link Pulse) 개념
NLP(Normal Link Pulse) 10Base-T에서 16ms의 주기를 가지고, 100ns 시간 동안의 링크펄스(Linkpulse)를 송신합니다. Linkpulse가 도착한 이후로, 150ms 동안 또 다른 Linkpulse나 프레임이 수신되지 않으면 링크 에러로 판단합니다. 150ms 내에, 4번의 연속적인 링크펄스를 수신하거나, 프레임을 수신하면 에러를 회복합니다. ※ 에러의 경우 수신자 기준으로 판단하므로, 참고하시기 바랍니다. FLP(Fast Link Pulse) 100Base-Tx/100Base-T에서 NLP를 확장하여 사용하는 개념입니다. 자신의 Spec.을 송신할 수 있고 Auto-negotiation과 연관된 기능입니다. FLP는 33개의 NLP로 구성되어 있고 16±8ms 주기를 ..
2022.03.04
no image
MDC, MDIO (Management Data Clock, Management Data Input/Ouput) clause 22 정리
MDC(Management Data Clock)/MDIO(Managment Data Input/Ouput)는 MAC에서 PHY를 제어 및 관리하기 위해 사용되는 2-Wire 직렬 버스입니다. 이번에는 IEEE 802.3의 Clause 22에 정의된 방식을 정리해보겠습니다. MDC/MDIO Clause 22는 32개의 PHY와 각 PHY 내 32개의 레지스터에 접근할 수 있습니다. MDC/M,DIO 핀에 대한 내용은 다음과 같습니다. 분류 MDC MDIO 인터페이스 클럭 MDIO MDIO 인터페이스 데이터 MDC/MDIO를 이용하여 PHY의 속도, Duplex mode, Auto-negotiation 등에 대해 설정할 수 있습니다. 이 외에도, 해당 PHY의 특수한 기능 설정도 가능합니다. PHY 내부 레..
2022.03.04
no image
MTU(Maximum Transmission Unit)와 MSS(Maximum Segment Size) 이해 및 관계
TCP/IP를 접하다보면 MTU, MSS란 단어들을 접하게 됩니다. 지금부터 간략하게 알아보도록 하겠습니다. MTU(Maximum Transmission Unit) - Ethernet 프레임을 제외한 IP 프로토콜 기준으로 송신할 수 있는 최대 크기 - MTU에서 IP 헤더(20Byte 이상)를 제외한 부분이 IP Payload 크기 - Window는 MTU가 기본적으로 1500으로 설정 MSS(Maximum Segment Size) - TCP 프로토콜 기준으로 송신할 수 있는 최대 크기 - MSS에서 TCP 헤더(20Byte 이상)를 제외한 부분이 TCP Payload 크기 MTU와 MSS 관계 - TCP는 IP의 상위 레이어 프로토콜이므로 아래와 같은 연관성이 있음 - MSS ( MTU - IP 헤더..
2021.12.30
Ethernet 와이어링 참고 사이트
Ethernet은 컴퓨터 네트워크에서 인터넷을 활용할 수 있게 해주는 중요한 통신 기술입니다. 그리고 일반인들이 인터넷을 활용할 때, 와이어에 대한 고민을 없게끔 표준이 견고하게 만들어져 있습니다. 그러나 Ethernet을 이용한 어플리케이션 및 시스템을 개발하는 입장은 조금 다릅니다. Ethernet 와이어에 대한 개념이 필요합니다. 한창 Ethernet을 공부한 때를 돌이켜보면 와이어링에 대한 자료가 잘 나오지 않았던 것 같습니다. Ethernet에 대한 분야가 워낙 광범위해서 주로 프로토콜에만 관심이 있어서 그런게 아닐까 싶습니다. 아무튼, Ethernet 와이어링에 대해 자세히 설명되어 있는 사이트가 있어 URL을 남깁니다. ※ URL: http://www.practicalnetworking.ne..
2021.12.30
지연 ACK(Delayed ACK)
Ethernet TCP 프로토콜을 분석하는데, 이론적으로 알던 내용과 다른 부분을 경험했습니다. TCP 서버에서 TCP 클라이언트로 데이터를 송신하는데, 꼭 2번씩 송신해야 TCP 클라이언트에서 ACK 답변을 하는 현상이었습니다. 예를 들면, 아래와 같습니다. TCP 서버 ----------> TCP 클라이언트 : Data TCP 서버 ----------> TCP 클라이언트 : Data TCP 서버
2021.12.30