블로그 이사했습니다아래에서 확인 가능합니다. https://code-lab1.com/%EB%9D%BC%EC%9A%B0%ED%8C%85-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/ [네트워크] 라우팅 알고리즘 비교, Link State 알고리즘, Distance Vector 알고리즘 - 코드 연구소라우팅 알고리즘이란 송신 측에서부터 수신 측 라우터의 네트워크를 통과하는 최적의 경로를 결정하는 알고리즘이다. 그러나 실제로는 여러 가지 이유로 최적의 경로를 결정하지 못할 수 있다.code-lab1.com 라우팅 알고리즘라우팅 알고리즘이란 송신 측에서부터 수신 측 라우터의 네트워크를 통과하는 최적의 경로를 결정하는 알고리즘이다. 그러나 실제로는 여러 가지 이유로 최적의 경로를 결정하지 ..
블로그 이사했습니다.아래에서 확인 가능합니다.https://code-lab1.com/count-to-infinity/ [네트워크] poisoned reverse란? count to infinity 문제 해결법 ,DV 알고리즘 - 코드 연구소이러한 문제를 Count to infinity problem 이라고 한다.code-lab1.com Count to infinity 문제Distance Vector 알고리즘(이하 DV 알고리즘)은 다른 라우터로 가는 최적 경로를 forwarding table에 저장해놓는다. 위와같은 상황에서 Y에서 X로 가는 비용이 60으로 증가한다면 어떻게 될까? ( 이해를 쉽게하기 위해 x라우터의 forwarding 정보는 무시하자 ) Y라우터는 인접 라우터들에 자신이 X로 가는 ..
블로그 이사했습니다.아래에서 확인 가능합니다. https://code-lab1.com/%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85/ [네트워크] 서브넷, 서브넷마스크, 서브넷팅이란? 서브넷팅 예제 - 코드 연구소예를 들어 C 클래스는 기본적으로 앞의 24비트는 Network ID, 뒤의 8비트는 Host ID를 나타낸다. 이때 서브넷 마스크를 이용하면 원본 네트워크를 여러 개의 네트워크로 분리할 수 있다. 이러한 과정을code-lab1.com 서브넷의 등장 배경흔히 사용되는 IPv4 주소 체계는 클래스를 나누어 IP를 할당한다. 하지만 이 방식은 매우 비효율적이다. 예를 들어 어떤 기관에 A 클래스를 할당한다고 하면 16,777,214개의 호스트를 할당할 수 있게 되는데, ..
블로그 이사했습니다.아래에서 확인 가능합니다. https://code-lab1.com/ip/ [네트워크] IP,IP 클래스, IPv4, IPv6이란? , IP 클래스 구분 - 코드 연구소IP는 Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜을 의미한다. IP에서 IP 기기의 주소를 나타내는 것이 바로 IP주소이다. 흔히 우리가 사용하는 IP는 이 IP주소를 의미한다.code-lab1.com IP 주소IP는 Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜을 의미한다. IP에서 IP 기기의 주소를 나타내는 것이 바로 IP주소이다. 흔히 우리가 사용하는 IP는 이 IP주소를 의미한다. 우편배달을 예로 들자면 IP주소는 배달 주소를..
블로그 이사했습니다.아래에서 확인 가능합니다. https://code-lab1.com/ip-%EB%8B%A8%ED%8E%B8%ED%99%94/ [네트워크] IP fragmentation, reassembly, IP 단편화 - 코드 연구소IP 단편화는 IP datagram을 여러 조각의 datagram으로 쪼개서 전송하고 최종 목적지에서 재결합(reassembly) 된다. IP 헤더를 통해 본래 하나의 datagram이었는지 구분하고 순서를 확인하게 된다.code-lab1.com IP 단편화(fragmentation)network links는 MTU(Max Transfer Size)를 가진다. 링크 계층 프로토콜마다 다른 링크 타입과 MTU를 가지므로 네트워크는 큰 IP datagram을 분할할 필요성이..
블로그 이사했습니다.아래에서 글을 확인할 수 있습니다. https://code-lab1.com/%ED%8C%A8%ED%82%B7-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81/ [네트워크] 패킷 스케줄링 기법(Scheduling Policies), Round Robin, WFQ(Weighted Fair Queuing) - 코드 연구소네트워크에서 스케줄링은 link 상으로 보낼 다음 패킷(packet)을 선택하는 것을 뜻한다. 패킷 스케줄링 기법에는 여러가지가 존재하는데, 그 중 몇 가지만 알아보자.code-lab1.com 스케줄링 기법(Scheduling Mechanisms)네트워크에서 스케줄링은 link 상으로 보낼 다음 패킷(packet)을 선택하는 것을 뜻한다. 스케줄링 기..
블로그 이사했습니다.아래에서 글을 볼 수 있습니다. https://code-lab1.com/tcp-%ED%98%BC%EC%9E%A1%EC%A0%9C%EC%96%B4/ [네트워크] TCP 혼잡제어(congestion control), AIMD, Slow Start , TCP Reno, Tahoe - 코드 연구소TCP 혼잡제어에는 AIMD, Slow Start등이 있다. 이때 TCP Tahoe, Reno등의 혼잡 제어 정책을 사용할 수 있다.code-lab1.com TCP 혼잡 제어란?혼잡(congetion)하다는 것은 너무 많은 source가 너무 많은 data를 너무 빨리 전송해 네트워크가 이를 처리하지 못하는 상태를 말한다. 조금 더 자세히 설명하자면 데이터의 양이 수신 측에서 처리할 수 있는 ..
TCP란? TCP(Transmission Control Protocol)는 애플리케이션에서 보낸 데이터를 신뢰성 있게 수신 측에 전송을 보장하는 프로토콜이다. 다음과 같은 특징들을 가진다. point-to-point : 하나의 송신 측과 하나의 수신 측이 통신하는 1:1 통신이다. reliable : 신뢰성 있는 데이터 전송을 보장한다. pipelined : TCP 흐름 제어와 혼잡 제어가 window size를 설정한다. full duplex(전이중 통신) : 쌍방향 통신이 가능하다. 즉 데이터를 주고받을 수 있다. connection-oriented : 연결 지향적이다. 송신 측과 수신 측이 데이터를 교환하기 전에 handshaking을 한다. flow control : 흐름 제어를 한다. conge..
pipelined protocols pipelined protocols에서 pipelining은 송신자가 다수의 패킷을 한 번에 보내는 것을 말한다. 즉 ACK신호를 받을 때까지 기다리다 ACK신호를 받고 나서 다음 데이터를 보내는 stop and wait 방식과 다르게 송신자가 ACKs 신호를 받지 않아도 패킷 여러 개를 보내는 방식이다. 송신자와 수신자가 버퍼를 가져야 하며, 대표적인 두 가지 프로토콜로 Go-Back-N과 Selective Repeat이 있다. 참고 : stop and wait 방식의 RDT [네트워크] Reliable Data Transfer - rdt 1.0/2.0/2.1/2.2/3.0 | RDT란? | FSM 이란? RDT(Reliable Data Transfer)란? RDT는..
RDT(Reliable Data Transfer)란? RDT는 신뢰성 있는 데이터 교환을 의미한다. 즉 송/수신하는 데이터가 오류 없이 온전히 전송되는 것을 뜻한다. Transport Layer(전송계층)에서는 신뢰성 있는 데이터 교환을 하고 싶어 하지만, 하위 레이어들에서는 신뢰성을 보장할 수 없기 때문에 문제가 발생할 수 있다. 이를 해결하기 위해 Transport Layer에서 RDT 프로토콜을 이용할 수 있다. 아래는 RDT 프로토콜을 이용해 데이터를 송/수신하는 예시이다. 송신 측 상위 레이어에서 보내려는 데이터가 있다면 rdt_send()를 호출해 데이터를 RDT 프로토콜로 전송한다. RDT 프로토콜에서 신뢰할 수 없는 채널인 하위 레이어로 보낼 때 udt_send()를 호출해 패킷을 전송한다..