[네트워크] 3 - 1. Transport 트랜스포트 계층

 

 

Multiplexing / Demultiplexing

 

 

  • Multiplexing : Socket으로부터 받은 데이터에 헤더를 추가한다.
  • Demultiplexing : 받은 세그먼트를 올바른 Socket에 전달한다. 

 

 

TCP Soket Connection - oriented

 

 

 

  • UDP는 목적지 Port 번호만 같으면 같은 Socket으로 간다. 
  • TCP는 목적지 IP, 목적지 Port번호, 소스 IP , 소스 Port번호 4가지가 모두 같아야 같은 Socket으로 가고,
    하나라도 다를경우 다른 Socket으로 간다. (1:1) 

 

TCP Segment와 UDP Segment의 차이

 

 

 

 

  • 실제 Data의 크기는 Header보다 훨씬 크다
  • 세그먼트 Header에는 목적지, 소스 포트번호가 적혀있다. 
  • TCP는 UDP에 비해 하는일이 많으므로 헤더에 그밖의 다른 것들이 있다.

 

RDT : Reliable Data Transfer

 

 

  • Transport Layer은 RDT Protocol로 신뢰성 있는 전송을 하는 Reliable Channel 이지만 Network Layer는 Unreliable Channel이다. 
  • 비신뢰성 채널에서 메세지 Error와 Loss가 생길 경우 어떻게 해결을 하는가? (= Checksum, Timer 등등)
  • 만약 Network Layer에서 신뢰적인 전송을 한다면, Tranport Layer에선 보내고 받는것 빼곤 할 일이 없다. 

 

Packet Errors 를 위해 필요한 메카니즘

 

  • Error Detection : 체크섬 비트를 추가한다.
  • Feedback : 수신자가 잘 받았으면 ACKs, 못받았으면 NAKs 라는 피드백을 보낸다. 
  • Retransmission : 송신자는 수신자의 피드백을 가지고 NAK의 피드백이 오면 Packet을 재전송한다.

 

 

  • Sender : 피드백을 기다린다.
    Packet에 Sequence #를 추가한다.  
    수신자에게 NAK가 오면 재전송(udt_send(sndpkt)) 한다.  파란색글씨
  • Receiver : Packet의 에러가 있으면 (corrupt)  NAK를 보내고, 에러가 없으면 (notcorrupt) ACK를 보낸다.
    패킷이 중복된 패킷인지 체크한다.

 

  • 이렇게 패킷이 하나하나 보내진다고 가정하면(실제론 아님) ACK는 0,1으로만으로 피드백을 해결할 수 있다. 
  • 중복으로 오는 Packet이 있다면 수신자입장애서는 처분한다.

 

 

Packet Loss를 위해 필요한 메카니즘

 

  • Timer : 수신자로부터 피드백이 오는데 걸리는 최대 시간을 정해 놓는다. 정해진 시간안에 안오면 다시 보낸다.너무 길어도 짧아도 비효율적이다.

 

 

RDT 정리

  • Unreliable한 Channel에선 패킷 error , loss가 일어난다. 
  • Packet error를 위한 메카니즘 : Error detection, feedback, retransmission
  • Packet loss를 위한 메카니즘 : Timeout! 

 

  • 지금까지는 data packet이 하나가 전송되고 피드백이 완료되어야 다음 패킷이 출발한다고 간단하게 배웠지만,
    실제로는 Pipline 기법으로 data packet을 여러게 전송한다.

 

클라이언트 서버 구조

  • Client : 고정된 IP , 의사소통을 시작하는 프로세스
  • Server : 다이나믹한 IP , 연결을 기다리는 프로세스 

 

Socket 

  • 소켓은 메세지를 프로세스로 수신, 송신 한다.
  • 다른 컴퓨터의 위치를 지정할 땐 IP+socket Port Number 사용

 

데이터를 보낼 때 요구 되는 것 

 

  • Data integrity : 어플리케이션은 100% 손실이 없는 데이터를 요구하거나,  loss에 견딜수 있어야한다. 
  • Timing : 어떤 어플리케이션은 효율성을 위해 적은 딜레이를 요구한다.
  • Throughput : 어떤 어플리케이션은 효율을 위해 최소한의 throughput이 요구된다.
  • Security : 보안

📌 Tip : Transport Layer에서 제공하는 기능은 Data integrity이다. EX) TCP 

 

HTTP : hypertext transger protocol

  • 웹 애플리케이션 프로토콜
  • Request , Response 로 단순하다. 
  • stateless : 클라이언트의 정보를 저장하지 않는다. 
  • Transport Protocol은 TCP 이용

📌 Tip : Response 또는 Request 요청 전에, 먼저 TCP 커넥션을 생성해야한다. 

 

HTTP connections

  • non - persistent HTTP : 필요할 때마다 TCP 연결을 한다.  ( 현재의 방법 )
  • persistent HTTP : 한번 TCP 연결을 하고 그다음부턴 재사용한다.

 

📌 Tip : HTTP response time은 필요할 때 마다 연결 하므로 2RTT+ filetransmission time이 항상 걸린다. 

 

 

네트워크의 구조

  • Network edge : 끝에 단말들.  ex) applications and hosts

  • Network core : 중간 라우터들. ex) routers, network of networks
  • Access Networks, Physical media : 연결해주는 선들. ex) comminication links

 

Network edge

  • hosts : Web, email 등등

  • client - server : 웹서버-클라이언트, 이메일 클라이언트 - 서버 등등

  • Peer to Peer : 스카이프 등등

 

Protocol

모든 인터넷의 상호작용은 프로토콜에 의해 조정된다

 

프로토콜은 통신 규약이다. 현실 전화에서도 Protocol의 예가 있다. 예를 들어 전화를 할 때 우리는 꼭 시작에 여보세요? 라는 말을 한다. 상대가 말을 들을 준비가 되었는지 확인을 한 뒤에  말을 이어가는데 이것도 일종의 약속 , 즉 , 프로토콜이라 볼 수 있다.

 

 

Network Core

  • Circuit Switching : 유선전화

    처음부터 끝까지 예약으로 뻥 뚫어 연결한다.  단독으로 그 길을 사용한다는 것이 핵심 

  • Packet Switching : 인터넷
    다 같이 Packet이란 것에 data를 쪼개 넣어 차례차례 보낸다.

📌 Tip : 인터넷은 Circuit을 사용하면 비효율 적일 수 밖에 없다. 우리는 인터넷을 할 때, 항상 클릭을 한다던지 무슨 작업을 하는 것이 아니라 멈춰있는 시간도 많고 언제 끝낼지 알 수 없다. 그래서 예약방식인 Circuit을 사용하면 비효율성이 발생한다. 

 

 

Packet Delay

 

  • Processing Delay : 라우터에서 비트 에러를 체크하고 다음 라우터를 선택하는데 (= 아웃풋 링크를 결정하는데 ) 걸리는 딜레이 

  • Queueing Delay : 라우터 안에서 링크로 나가기위해 기다리는 딜레이. 라우터 안의 혼잡도에 의해 결정됨. 

    라우터의 허용하는 Queue가 꽉찬경우 Packet Loss가 일어날 수 있다.

  • Transmission Delay : 링크까지 올라타는데 걸리는 딜레이

  • Propagation Delay : 링크를통해 라우터까지 가는 딜레이

 

d (Packet) = d (Processing) + d (Queueing) + d (Transmission) + d (Propagation)

 

 

📌 Tip : Queueing Delay 에서 Packet Loss가  일어난 경우 재전송이 일어나는 것은 이전 Router가 아닌 유저차원 ( TCP )에서 해준다. Router에 해주게 된다면 Router가 하는 일은 더 복잡해진다. 하지만 이 일을 유저쪽에서 다시 해주게 된다면 Router는 IP 계층 까지밖에 필요가 없게 되어 더욱 간단하게 일 할 수 있다. 

 

Transmission Delay 와 Propagation Delay의 차이

Transmission = 12*10 = 120sec (Store and forward 차가 모두 들어와야 forward 되기 시작한다!)

Propagation  = 100/100 = 1hr 

총 Delay( process와 queueing은 빼고 생각 ) = Transmission + Propagation = 62minutes

[네트워크] OSI 7계층 Protocols , TCP/IP Protocols

  • Protocol 이란?

인터넷은 거대한 컴퓨터 네트워크로서 다양한 컴퓨터들이 연결되어있다. 이처럼 기종이 다른 컴퓨터 상호간의 통신에서 아무런 사전 약속도 없이 정보를 전송하거나 요구한다면 큰 혼란이 발생할 수 있다. 따라서, 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약을 정하는게 그것이 Protocol이다.

 

그림 1. OSI 7계층과 TCP/IP 프로토콜 

OSI 7계층

  • 응용 계층 : 응용 프로세스 간의 정보 교환, 전자 사서함 , 파일 전송. 
  • 표현 계층 : 정보의 형식 설정과 부호 교환, 암호화, 해독
  • 세션 계층 : 응용 프로세스 간의 연결 접속 및 동기 제어
  • 트랜스포트 계층 : 송수신 시스템 간의 논리적 안정과 균일한 서비스 제공
  • 네트워크 계층 : 정보 교환 및 중계 기능, 경로, 선정, 유통 제어.
    4계층에서 요구하는 서비스 품질(QoS) 제공하기 위해 기능적 , 절차적 수행.
    IP,ICMP, OSPF, RIP 등의 프로토콜이 있다.
  • 데이터링크 계층 : 동기화, 오류 제어 등의 기능으로 데이터 블록을 인접 노드간에 오류없이 신뢰성 있는  전송.
    두 지점 간의 통신을 위해서는 MAC 주소를 사용한다.
    가장 일반적 프로토콜은 이더넷이며 대표적 장비로는 스위치, 브리지가 있다.
  • 물리 계층 : 매체 접근에 있어 기계적, 전기적 물리적 절차를 규정. 랜선, 허브, 리피터 등이 있다.

TCP/IP 4계층

TCP/IP 프로토콜을 사용하는데 초점을 맞춰 7계층이 아닌 4계층으로 나뉜다.

데이터 링크 계층과, 물리계층을 합쳐 링크 계층을 이루고, 응용, 표현, 세션 계층을 합쳐 응용계층을 이룬다.

 

+ Recent posts