Network

    Network :: Flow Control & Congestion Control

    Network :: Flow Control & Congestion Control

    Flow Control 상대와 나와 버퍼 크기를 맞추어가면서 받을 수 있는 상황에만 상대방이 보내도록 하는 것이 Flow control ! TCP header 안 receive window 항목에 현재 버퍼에 받을 수 있는 만큼의 공간인 rwnd 부분 value 를 채워서 상대에게 보내고, 상대는 최대 그만큼의 데이터만 보내게 된다. → 따라서 buffer overflow 가 일어나지 않음 ! 초기에는 receive window 에 RcvBuffer 사이즈가 설정되고 (일반적으로 4096) 이후에는 받을 수 있는 만큼(rwnd 값)을 receive window 에 보내면서 흐름 제어 ! Congestion Control 한 번에 너무 많은 데이터를 보내면 네트워크에 문제가 생길 수 있다. → 그래서 한 ..

    Network :: TCP

    Network :: TCP

    TCP 특징 point-to-point : 1대1 연결 reliable, in-order byte stream : 신뢰성 있는 연결, 순서를 가진 데이터 전송 pipelined : stop-and-wait 하지 않게 데이터를 전송 이 방식은 congestion control 과 flow control 이 같이 동반되어야 함 ! full duplex data : 양방향으로 데이터를 주고 받을 수 있음 MSS : maximum segment size connection-oriented : 연결 지향 handshaking flow controlled : 수신자가 받을 수 있는 용량을 송신자가 고려함 헤더 구조 source port / dest port : 각 2bytes sequence number : 4by..

    Network :: UDP

    Network :: UDP

    UDP User Datagram Protocol connectionless no handshaking 사용되는 곳 스트리밍 multimedia app DNS SNMP UDP 헤더 헤더 8byte 밖에 없다. source port : 16bit (0~65535) dest port : 16bit (0~65535) 1000번 이하 포트는 well-known 포트이므로 쓰지 말자 UDP Checksum 싹 다 더한다 1의 보수를 취한다

    Network :: Pipelined protocol

    Network :: Pipelined protocol

    등장 배경 Reliable 하게 전송을 하기 위해서는 패킷을 보내고 잘 받았는지 ACK 응답을 받아야 한다. 하지만 ACK 을 받고 다음 패킷을 전송하려면 stop-and-wait 문제가 발생하게 된다. 패킷을 실제 전송하는데는 시간이 거의 걸리지 않지만, 패킷이 네트워크를 타고 목적지까지 갔다가 ACK 신호를 가지고 돌아오는데까지 걸리는 RTT (Round Trip Time : 왕복시간) 가 너무 많이 걸리기 때문에 ACK 신호를 받고 다음 패킷을 보내는 것은 사실상 어렵다. 이를 극복하고자 나온 것이 Pipelined protocol ! Pipelined protocol pipelined protocol 에서 사용하는 방법은 두 가지가 있다. go-Back-N selective repeat Go-Ba..

    Network :: Routing protocol

    Network :: Routing protocol

    목표 목적지까지 가는 가장 좋은 path 를 찾아내는 것 좋은 path 란 ? 비용이 적게 들거나, 가장 빠르거나, least congested 하거나 ! 분류 Q. global or decentralized information ? global → link state algorithm decentralized → distance vector algorithm Q. static or dynamic ? static dynamic Link state algorithm Dijkstra’s algorithm 특정 출발지에서부터 모든 노드로 최단 경로 찾기 알고리즘 ! 특정 출발지에서 목적지까지 가는 경로 중 최소 비용으로 갈 수 있는 경로를 찾는 것 표기 방법 C(x, y) : x 에서 y 까지 가는데 드는 비..

    Network :: SDN

    Network :: SDN

    SDN Software-Defined Networking Router 의 개수도 많아지고, 단순히 Router 가 Routing 경로를 결정하는 것보다 해야 할 일들이 많아지면서 control plane 에서 정책들을 결정하고 이에 따라 Routing 을 할 수 있도록 만들기 위해 등장 ! control plane 과 data plane 을 나누고 Router 들에게서 정보를 받아서 중앙 집중식으로 table 을 만든 후, (control plane) 다시 Router 들에게 해당 정보를 뿌려서 Routing 할 수 있도록 하는 방식 ! (data plane) Router 들은 각각 CA 라는 control agent 가 있고, 이를 통해서 remote controller (서버) 는 정보를 수집한다. ..

    Network :: IPv6

    Network :: IPv6

    등장 배경 기존 32bit 기반의 IPv4 에서 할당할 수 있는 IP 주소 공간이 부족하기 때문에 더 많은 주소 공간을 제공할 수 있는 프로토콜이 필요해졌다. 추가로 IPv4 는 Best effort 라고 불리는데, 주로 텍스트 정보를 보내던 예전과 달리 이제는 영상, VoIP 등 다양한 종류의 데이터가 송수신되고 있다. (주로 multi-media) 보통 라우터를 통해서 패킷이 이동할 때 3계층까지 확인하는데, IPv4 의 경우 패킷 헤더의 구조가 복잡하기 때문에 딜레이가 많이 생긴다. 이 가변적인 헤더 포맷을 40바이트로 고정해서 패킷 전송 속도를 빠르게 하고, 더 많은 주소 공간을 확보하게 하고자 나온 것이 IPv6 ! IPv6 고정된 40bytes 길이 헤더를 가진다. fragmentation 이..

    Network :: NAT (Network Address Translation)

    Network :: NAT (Network Address Translation)

    NAT 라우터를 기준으로 바깥쪽에서는 한 개의 IP, 내부적으로는 여러 개의 IP 를 관리하게 된다. 이 때 내부 사설 IP 를 외부 공인 IP 로, 외부 공인 IP 를 내부 사설 IP 로 변환하여 외부와 내부 통신이 가능하도록 하는 변환 기술을 NAT 라 한다 ! NAT 가 해야 하는 일 outgoing datagrams : replace 로컬 네트워크에서 쓰고 있는 주소는 내부망 가짜 주소 ! NAT 라우터를 통과하는 순간, 보내는 IP 주소와 port 넘버를 바꿔서 내보낸다. remember 안쪽에서 쓰는 IP 주소와 port 넘버, 바깥에서 쓰고 있는 IP 주소와 port 넘버를 테이블 형식으로 저장해서 관리한다. ingoing datagrams : replace 들어온 패킷의 IP 주소와 por..