CS

· CS/Network
IP Fragmentation(단편화), Reassembly(재조립) 네트워크 링크는 MTU(Maximum Transmission Unit, 최대 패킷 크기)를 가집니다. MTU란, 링크가 수용할 수 있는 최대 전송 사이즈를 의미합니다.  그래서  Sender가 전송하고자 하는 데이터그램의 크기가 물리적인 링크에서 수용할 수 있는 데이터의 크기보다 크면, 데이터그램을 전송하지 못하는 상황이 발생할 수 있습니다. 이러한 문제를 해결하기 위한 방법이 Fragmentation(단편화) 입니다. 데이터가 크면 MTU에 맞춰 자르는 것입니다. 그리고 쪼개진 패킷들은 도착지에 도착하면 다시 합쳐집니다. 이것은 Reassemble(재조립)이라고 합니다. 아래와 같은 상황에서 IP Fragmentation이 어떻게 이..
· CS/Network
DHCP 란? DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜)는 네트워크 내의 컴퓨터에 자동으로 네임 서버 주소, IP 주소, 게이트웨이 주소를 할당해주는 프로토콜입니다. DHCP 서버는 이에 대한 네트워크 정보를 가지고 있다가, 클라이언트로부터 요청이 오면 자신이 가지고 있는 정보를 전달해줍니다. 쉽게 설명하자면, 터미널에 - ipconfig 명령어를 실행하면, 알수있는 IP 주소는 아래 그림과 같습니다. IP, subnet mask, route, DNS가 나타나는 것을 볼 수 있습니다. 예를 들어 아래와 같은 주소가 나타난다고 생각해보겠습니다. IP: 192.168.1.47 subnet mask: 255.255.255.0 route: 192.16..
· CS/Network
1. NAT(Network Address Translation)NAT은 네트워크에서 내부망과 외부망을 나누어주는 기술입니다.  (1) NAT의 도입 배경 IP가 네트워크에서 주소를 찾아가게 해주는데, NAT은 또 왜 필요한 것일까 의문을 가져볼 수 있습니다.  IPv4는 32비트입니다. 이것은 2^32개의 hosts를 지정할 수 있다는 의미입니다. 약 40억개의 IP 주소를 사용할 수 있습니다. 하지만 현대 시대의 네트워크 규모가 커지면서 host의 개수가 IP 주소를 초과합니다. 충분한 수의 IP 주소가 없기 때문에, 기기마다 IP 주소를 부여할 수 없는 상황입니다. 그래서 1996년, IPv6 라는 새로운 버전의 주소체계가 나왔습니다. 이 방식은 2^128개의 host를 지정할 수 있습니다. 하지만 ..
· CS/Network
네트워크 계층이란? 지금까지 살펴본 전송 계층에서의 관점에서 생각해보면, 네트워크란 복잡한 시스템이기 때문에 이 시스템을 잘 디자인하고 관리할 필요성이 있어 계층화시켜놓은 것이 네트워크 계층이라고 볼 수 있습니다. 따라서 상위 계층으로 갈수록 개념적이고 하위 계층으로 갈수록 디테일합니다.  애플리케이션 계층을 고려할 땐 Client와 Server가 request와 response를 주고 받는다고 할 때 데이터 유실을 고려하지 않았습니다. 이후 전송 계층에서 패킷 유실 상황에 대한 대처를 다루었습니다. 마찬가지로 전송 계층까지는 어떤 경로로 세그먼트가 가는지에 대해서는 다루지 안았습니다. 그 부분에 대해 네트워크 계층에서 살펴볼 수 있습니다.  네트워크 계층은 패킷을 목적지까지 배송시키는 일을 책임집니다..
· CS/Network
이번 포스팅에서는 혼잡 제어(Congestion Control)에 대해 알아보겠습니다.   TCP는 네트워크 상황에 따라 패킷을 보내는 속도를 조절해야만 합니다. 만약 네트워크가 복잡해지며, 한 라우터 버퍼에 데이터가 몰릴 경우에 송신자들은 다시 재전송을 하게 되고, 이것은 혼잡을 가중시켜 결국 오버플로우나 데이터 손실을 발생시키게 됩니다.   이렇게 네트워크가 막힌다면 네트워크에 접속한 모두가 패킷을 전송할 수 없으므로, 이를 파악하고 방지하기 위해 데이터 전송을 제어하는 것을 혼잡 제어(Congestion Control)라고 합니다.   네트워크 상황을 어떻게 확인할 것인가 네트워크 상황을 유추하기 위해서는 네트워크에서 직접 데이터를 보내줄 수는 있지만, 그렇게 하기 위해서는 라우터가 처리를 해주어야..
· CS/Network
이번 포스팅에서는 TCP의 주된 기능인 Flow control과 3 / 4 Way-Handshake에 대해서 살펴보겠습니다. 1. 흐름 제어(Flow Control) 데이터를 전송할 때, 짧은 시간에 많은 데이터를 보낼 수록 좋을 것만 같지만, 실제로는 그렇지 않습니다. 송신자에서 많은 데이터를 보내도, 수신자에서 그것을 처리할 수 없다면 많은 데이터들이 버려지게 됩니다.  그래서 수신자가 처리할 수 있는 용량을 송신자에게 피드백을 해주어야 합니다. 이를 위해 recv 버퍼의 크기를 기록해 전송하게 됩니다.  다시 TCP 세그먼트 구조를 살펴보겠습니다. 그림을 보면 4번째 줄에 Receive window가 있는 것을 볼 수 있습니다. 이것이 바로 현재 남은 recv버퍼의 크기를 가르킵니다.  만약 수신자..
동구름이
'CS' 카테고리의 글 목록 (3 Page)