네트워크 및 데이터통신 이론
L2 - LAN Adapter(랜카드) 의 동작
L2 - LAN Adapter(랜카드) 의 동작
2021.12.31LAN Adapter는 송신에 대해서 어떤일을 하는가? 송신하려는 데이터가 랜카드 까지 도착했다면 사실상 통신에 필요한 정보는 완성이 된 상태이다. 물론 IP Header 까지만 넣고, 랜카드에서 MAC Header를 붙이는 것 아닌가 오해할 수 있다. 랜카드가 MAC Address를 가지고, MAC Address가 L2에서 사용되는 주소니까, L2 Header도 랜카드에서 붙이는 것이 아닌가...? " 생각할수 있겠지만, 그렇지 않다. 랜카드에 도착하기 전 IP Header, MAC Header 세팅을 모두 끝낸다. Header를 붙이는 것은, OS 내지는 소프트웨어가 하는일이다. IP Header와 MAC Header는 단지 L3장비와 L2장비가 이해할수 있는 주소체계를 가지고 있는 것이다. 데이터 ..
네트워크/데이터 통신 기본 이론 - Packet Header 의 구분
네트워크/데이터 통신 기본 이론 - Packet Header 의 구분
2021.12.31아래 그림은 Ethernet 헤더부터 IP 헤더, 그리고 TCP/UDP 헤더를 통해 패킷의 응용을 어떻게 구별하는지를 그 과정을 보이고 있습니다. L2: Ethernet Header Ethernet 헤더는 Destination MAC Address(6B), Source MAC Address(6B) 그리고 Ethernet Type(2B)로 구성이 됩니다. 그리고 위 그림과 같이 Ethernet Type의 값이 1536(0x600) 보다 크면 RFC 894에서 규정한 DIX 2.0 포맷이 되구요(아래 그림 좌측과 같이). 만약 이 보다 작은 값이면 IEEE에서 정의한 SNAP 혹은 SAP 포맷이 됩니다. 현재 유선 Ethernet 망에서 다니는 대부분의 패킷은 이 DIX 2.0 이므로 일단 이 것만 아셔도 ..
L3 - ARP(Address Resolution Protocol)
L3 - ARP(Address Resolution Protocol)
2021.12.30원격과의 데이터통신에는 총 3개의 주소가 필요하다. L4 Port Number, L3 IP Address, L2 Ethernet Address(MAC Address) IP와 Port에 대해서는 서비스 제공자로부터 App 내에 코딩된 정보 혹은 웹페이지의 도메인이름이 사전에 등록이 되어있는 경우 DNS 서버의 도움을 받아 쉽게 알아 낼 수 있다. L4와 L3는 그렇다고 치고, L2 주소( Ethernet Address)는 대체 어떻게 알아내서 통신이 진행되는 것일까? 라우터와 라우터 사이에는 별도의 프로토콜이 존재하지만, 같은 라우터를 공유하는 다른 서브넷내의 머신과의 통신에는 간단하게 ARP가 이용된다. 같은 라우터를 사용하는 다른 서브넷일 경우 ARP를 이용하면 간단하게 이더넷 주소를 얻어온다. 이때,..
L4 - TCP Sliding Window
L4 - TCP Sliding Window
2021.12.29TCP 는 원격의 Ack 통지로부터 내가 보낸 데이터가 잘갔는지 확인하고, Seq 통지를 통해 보낼 데이터의 순서를 알린다. 1. Seq로 상대에게 데이터 순서를 통지하고, 2. 상대로부터 Ack를 받은뒤, 3. 이에 따라 Seq를 정하고 다시 송신. 한번보내면, 상대도 응답을 한번 보내고 그걸 받아야만 다음 차례 송신을 진행하는 이런 방식을 핑퐁 방식 이라고 한다. 핑퐁 방식은 무엇보다도 상대로부터 Ack를 받고 다시 보내기 때문에, 상대가 어디까지 받았는지, 내가 어디서부터 보내야 할지가 매우 명확하며, 방식이 매우 심플하다. 허나 , 데이터 송신 후 상대측으로부터의 Ack 통지를 기다릴때, 상대측의 응답이 늦어질 경우 상당한 손해이다. 보낼 것은 많은데, 상대측으로부터의 응답이 없다는 이유로 기다릴..
L4 - TCP Header 구조
L4 - TCP Header 구조
2021.12.27TCP는 L4 프로토콜의 일종이며. Transmission Control Protocol 의 약자이다. 전송을 제어 하는 기능을 가진 L4 통신방식이다. L4 얘기를 한다고 하면 TCP 얘기를 많이 할것이다. 그만큼 중요하다. 통신방식을 쉽게 빠르게 이해하기를 원한다면 가장 첫번째로 보아야할 것은 바로 통신에 사용되는 Header이다. 위의 그림이 뭘 헤더라고 부르냐? 했을때 가장 간단하게 표현한 그림인듯 하다. 친구한테 메일로 HELLO라고 보낸다고 하자. 실제로는 HELLO말고도 통신에 필요한 정보들이 필요하다. 이것도 주고 받아야 컴퓨터 끼리 통신을 잘한다. 그렇다 Header, Payload는 랜선 따라서 같이가는 동반자다. 컴퓨터 네트워크 상의 통신에 사용되는 여러가지 데이터는 Header다. ..
L4 - TCP의 Connect 과정시 3Way-Hand Shake
L4 - TCP의 Connect 과정시 3Way-Hand Shake
2021.12.23전송 프로토콜로 TCP 방식을 사용하려한다면, 본격적인 데이터통신에 임하기전에 Connect(연결) 과정을 거쳐야한다. HandShake라는 이름에서도 의미를 알수 있듯이, 이것은 일종의 양측 상호확인 절차이다. (합시다. Okay 저도 수락 합니다. 아 그럼 괜찮은걸로 알겠습니다?) 같은... 클라이언트 측은 통신을 원한다는 의사를 밝힌다. 이것이 곧 서버의 특정 Port에 SYN을 보내는 행동이다. 물론 보이듯이 서버는 해당 Port를 LISTEN 상태로 두어야한다. (LISTEN 상태를 곧 열린 상태라고 보아도 된다.) 서버는 열린 Port로 들어온 Client로부터의 SYN을 받고, Okay. 통신하자 하고 SYN+ACK를 보낸다. Client는 서버에서 Okay가 왔으니 이제부터 통신할수 있겠구..
네트워크/데이터 통신 기본 이론 - Socket
네트워크/데이터 통신 기본 이론 - Socket
2021.12.22네트워크 프로그래밍을 처음 공부할때에 가장 막막한 점은 막연한 이론은 어느 서적에서나 볼 수 있다는 점이지만, 실제로 프로그램을 만든다고 할때에 이를 코드로 어떻게 구현해야 하는가? 이다. 그래서 많은 전문가들이 보통 Socket Programming부터 차근차근 하나씩 경험하기를권한다. Socket이란 무엇인가? 통신시 필요한 발신지(Source)와 목적지(Destination) 에 관한 정보와 통신 진행상황, 또 통신시 필요한 정보들을 기입해둔 데이터블럭을 이야기한다. App은 어찌 되었던 원격으로 데이터를 송신하기 위해서 Network Adapter에 접근해야 한다. 결국 하드웨어와 관련된 이야기이며, 이를 관리하는, OS 그리고 Driver를 거쳐야 하는 것이다. 정리하면 다음과 같다. App에서..
네트워크/데이터 통신 기본 이론 - OSI 7 계층 , TCP/IP 4 계층
네트워크/데이터 통신 기본 이론 - OSI 7 계층 , TCP/IP 4 계층
2021.12.22원격 통신시 거치는 과정을 계층으로 보기좋게 나타낸 것이 OSI 7 계층과 TCP/IP 4계층 이다. (표준 위원회가 있다고 하고 거기서 무슨 일을 한다고는 하던데 잘은 모르겠다.) 위로 갈수록 소프트웨어에 가까워지며, 아래로 갈수록 하드웨어에 가까워지는 특성은 같다. 실제로 네트워크 프로그래밍시에 가장 많이 신경을 쓰게 될 부분은 TCP 계층의 Application 과 Transport 계층이다. 각 계층은 통신목적지를 구분하기 위해 각기 다른 주소방식을 사용하며, 또한 각기 다른 통신규약(프로토콜)을 이용한다. TCP/IP 4계층의 Network Interface 와 OSI 7의 Datalink Layer는 MAC 어드레스를 사용하며, 이 계층에서 사용하는 Protocol을 통칭해 Ethernet 프..