[kocw 이미정] 3. Delay, loss, throughput in networks, Protocol layers, service models, Networks under attack: security, Internet history

이건회·2022년 1월 13일
0

네트워크

목록 보기
3/24

1.4 Delay, loss, throughput in networks

  • 어떤 패킷이 한 폭을 지나갈때 네 가지 종류의 딜레이를 겪는다. 먼저 패킷이 노드에 도착할 때 오류 없이 잘 도착했는지 확인하는 프로세스를 거친다. 에러를 체킹하고 다음 링크를 결정한다. 이를 nodal processing delay라 하는데 보통 msec보다 적은 시간에 끝난다.

  • 패킷이 버퍼에서 본인의 차례가 될 때 까지 기다리는 시간이 queueing delay인데 노드의 복잡한 정도에 따라 시간이 달라진다. congestion에 따라 매우 가변적이다.

  • 패킷이 버퍼에서 본인 차례가 되었을 때 패킷을 링크에 밀어넣는 시간을 transmission delay라 하는데 이는 패킷의 크기와 링크의 bandwidth에 따라 결정되는데 패킷의 크기와 밴드위드 모두 결정되어 있으므로 시간이 거의 일정하다. 밴드위드가 클수록 빠르고 패킷이 클수록 느려진다. L/R형태이다.

  • 비트가 링크에 타면 바로 다음 노드에 도달하는 것이 아닌 링크의 길이만큼 시간이 걸린다. 또 링크 상에서 전자 시그널이 전파되는 속도에 따라 딜레이가 걸린다. 이를 propagation delay라 하는데 이 시간은 링크의 길이(d)를 propagation speed로 나눈 값, 즉 d/s이다.

  • queueing delay는 output link로 뽑아내는 시간보다 더 빠른 시간 안에 패킷이 유입되면서 발생한다.

  • 단위 시간당 도착하는 트래픽의 양은 단위 시간당 도착하는 패킷의 수패킷의 길이로 트래픽이 결정 된다(L A). 그렇다면 (LA)/R(대역폭)은 traffic intensity(트래픽 강도)가 된다. 이 때 (LA)와 R이 같다는 것, 즉 1이라는 것은 유입되는 속도와 뽑아내는 속도가 같은 것이다. 따라서 1이 넘으면 딜레이가 늘어나는 것이고 0에 가까우면 유입되는 양보다 뽑아내는 속도가 빨라 delay가 매우 짧다. 그러나 0.7쯤 되면 delay가 1에 상응할 만큼 증가하는데 그 이유는 a는 단위시간당 도착하는 패킷의 "평균"을 의미하므로 경우에 따라 일시적으로 L*A/R이 1보다 커지기도 하기 때문이다.

  • 즉 queueing delay는 패킷의 양과 밴드위드에 따라 결정이 된다.

  • 두번째는 packet loss이다. 이 역시 queue로 인해 발생하는데 큐의 사이즈는 한정적인데 트래픽이 생겨 큐가 꽉 찬 상태에서 패킷이 도착하면 그 패킷을 버릴 수 밖에 없다. 따라서 packet loss가 발생한다. 사용자 입장에서는 손실된 패킷을 재전송하므로 delay가 발생하고 네트워크 입장에서는 추가로 재전송하는 만큼 리소스의 낭비가 발생한다.

  • 세 번째는 Throughput, 단위 시간당 처리량을 의미한다. 정확히는 단위 시간당 소스로부터 목적지까지 배달한 비트의 양이다. 어떤 소스를 목적지로 전달할때 사용하는 두 링크의 밴드위드가 각각 Rs와 Rc이고 Rs가 더 작을 때, 둘은 연결되어 있으므로 하나의 파이프로 취급할 수 있다. 그러나 결국 link capacity가 더 작은 링크에 맞춰 전달해야 하므로 throughput은 Rs에 따라 결정된다.

  • 따라서 이렇게 소스로부터 목적지까지 연결된 여러 링크 중에서 가장 작은 대역폭의 링크에 의해 throughput이 결정될 때, 이 링크를 bottleneck link라 한다.

    1.5 Protocol layers, service models

  • 프로토콜은 매우 방대하고 복잡하므로 layering이라는 구조로 정의되어 있다. 이를 통해 복잡한 시스템을 모듈화하고 구분하여 서로간의 관계를 정의하기 편하다. 또한 유지보수가 용이하다. 그러나 단점은 각각의 layer는 고유 목적이 있고 그 기능을 실행하는데 그 기능 간의 목적의 중복이나 충돌으로 오류가 발생할 수 있다는 점이다. 또한 어떤 한 layer가 잘 작동하기 위해서는 두 레이어가 구분되어 있어 서로에게 필요한 정보를 활용하지 못하고 옵티멀하게 동작하지 않을 수 있다.

  • 인터넷은 다섯 개의 프로토콜레이어로 정의된다. application은 유저가 네트워크 애플리케이션에서 발생시킨 데이터를 컨트롤하는 방법을 지원한다. 애플리케이션 마다 그 애플리케이션을 지원하기 위한 프로토콜이 정의되어 있다(ftp,smtp,http...). 이후 애플리케이션은 transport계층에 process(소스) to process(목적지) 전달을 요청한다. 따라서 애플리케이션 프로토콜에서 메세지를 만들고, 그 메세지를 목적지로 전달하는 역할을 transport에서 담당한다. 그러나 process to process 딜리버리를 위해서는 먼저 컴퓨터를 찾아가는 host to host 딜리버리가 이루어져야 하는데, 이를 network 계층에 요청한다. 네트워크 계층은 라우팅을 통해 호스트에서 호스트까지 배달하는 작업을 한다. 네트워크 계층은 소스 호스트로부터 목적지 호스트로 전달을 하기 위해 홉 바이 홉으로 네트워크 노드를 거쳐가는데, 이때 한 홉을 건너갈 때마다 link계층에 부탁을 하고, 링크 계층 역시 physical에 비트를 밀어 넣어야 한 홉을 건너갈 수 있다.

  • 위 사진을 보면 네크워크 애플리케이션은 오직 end system에서만 실행되므로 라우터는 network계층까지, 스위치는 link계층까지밖에 존재하지 않는 것을 확인할 수 있다. 라우터에서 네트워크 애플리케이션은 실행되지 않는다. 또한 transport 계층 또한 process-process,즉 end to end 딜리버리 이므로 엔드 시스템에만 존재해 라우터와 스위치에는 존재하지 않는다. 스위치에는 일반적인 길찾기 기능이 없으므로 network 계층을 가지고 있지 않다.


  • 애플리케이션에서 transport 계층으로 메세지를 내려보낼 때 transport 계층에 잘 도착했는지 확인할 수 있는 header를 추가한다. 메세지와 헤더가 합쳐진 유닛을 segment라 한다. 이 때 transport에서 네트워크 계층으로 segment를 내려보내며 host to host 딜리버리를 요청하는 또 하나의 header를 추가한다. 이렇게 합쳐진 것을 datagram이라 한다. 또 네트워크에서 링크 계층으로 내려보내며 다음 홉으로 건너갈 것을 요청하는 header를 다시 추가하는데 또 합쳐진 것을 frame이라 한다. 이 프레임이 스위치를 거쳐 다시 다음 라우터로 전달되는 프레임으로 만들어지고, 라우터에서 소스 네트워크 계층 헤더를 읽어 다음 목적지를 파악한 후 또 링크계층에서 헤더를 붙여 프레임을 만들고, 그 프레임을 목적지로 보내 목적지에서 차례로 헤더를 읽어가며 데이터를 받는다. 이때 message,segment,datagram,frame을 PDU, Protocol Data Unit이라 부른다.

  • 프로토콜의 각 계층에는 보안 매커니즘이 추가되어야 한다. 네트워크 보안의 분야는 네트워크 공격 종류를 판단하고, 어떻게 방어할지 판단하고, 원천적으로 공격을 예방하는 아키텍처를 디자인하는 것이다.

  • 컴퓨터 내의 악성코드를 malware라 한다. virus와 worm이 있는데, 바이러스는 사용자가 받아서 실행해야만 활성화한다. 그러나 worm는 받기만 하면 활성화가 된다. spyware malware는 이용자의 모든 웹 기록을 콜렉션 사이트에 업로드 하는 것이다. botnet는 스팸이나 디도스공격에 활용되는 오염된 컴퓨터의 집합이다.

  • 공격의 종류는 먼저 denial of service(dos)가 있다. 이는 서버에 쓸모없는 트래픽을 계속 보내 실제 사용자의 업무를 하지 못하는 것이다. 이것이 진행되기 위해서는 타겟을 결정하고 타겟 컴퓨터에 malware를 보내 그것을 botnet으로 만들어버린다. 이 오염된 컴퓨터가 서버로 패킷을 보내면 서버는 트래픽의 발생으로 실질 응대가 불가능하다

  • sniffing 은 브로드캐스팅 미디어(미디어 내 여러 호스트들이 붙어 미디어를 공유하는 것)인 공유 이더넷이나 무선통신(와이파이)에서 발생한다. 네트워크에 연결되기 위해서는 NIC라는 카드가 꽂혀야 한다. 이 nic마다 할당되는 물리적인 고유 주소가 있는데 링크 계층에서 프레임을 받으면 프레임의 주소를 보고 nic주소와 일치하면 프레임을 받아들여서 윗 계층으로 보내고 그렇지 않으면 프레임을 드랍시킨다. 혹은 nic가 아닌 broadcast frame일 경우에도 받을 수 있다. 그러나 간혹 nic를 primiscuous모드로 세팅할 수 있는데 이 경우 나를 목적지로 삼는 프레임이 아니더라도 윗 계층으로 올려보낸다. 이때 프로토콜의 윗 계층에 malware가 있을 때 그 모든 정보를 악성 컴퓨터가 받아볼 수 있다.

  • ip spoofing은 어떠한 낮선 호스트가 마치 자신이 소스 어드레스인 양 행동해서 목적지에 메세지를 보내는 것이다.

profile
하마드

0개의 댓글