Search
Duplicate

Summary

태그
속성

Networking 방식

circuit switching : 중앙에서 데이터 전송 경로를 결정
packet switching : 데이터 전송 경로가 그때그때 다르다.

TCP/IP 5계층

Application layer : 프로토콜에 따라 User가 실제로 받는 데이터의 형식을 결정
Transport layer : process to process 전달방식
Network layer : source to destination 전달방식
Datalink layer : hop to hop 전달방식
Physical layer

Stream Delivery vs Boundary Delivery

Stream Delivery는 들어오는대로 순서나 같은 프로세스인지를 확인하지 않고 데이터를 전송한다. TCP 프로토콜이 이 전송방식을 사용
Boundary Delivery는 하나의 프로세스 전체 데이터가 들어오면 그 데이터를 전송한다. UDP 프로토콜이 이 전송방식을 사용

Selective 방식 vs Cumulative 방식

Selective 방식은 전송한 패킷에 대한 응답 패킷에 받은 시퀀스 넘버를 포함한다.
Cumulative 방식은 전송한 패킷에 대한 응답 패킷에 받고 싶은 시퀀스 넘버를 포함.(TCP가 사용하는 방식)

3-way handshake

SYN, SYN+ACK, ACK으로 구성
클라이언트가 마지막에 ACK을 전송할 때는 Sequence Number가 의미가 없다. ACK Number가 중요

Fin(close)

client가 server의 Fin에 대한 Ack을 보내고 바로 죽으면 server가 ack을 받지 못하였을 때 정상종료가 이루어지지 않는다. 따라서 Time-out 시간만큼 살아있는다.

window

Flow control : 소비하는 속도와 전송하는 속도의 균형을 맞추기 위한 시스템. 수신자가 전송자에게 자신의 남은 공간을 알려준다.
Silly window syndrome : 작은 데이터를 보내는데 큰 헤더 사이즈가 필요한 경우.
Nagle 알고리즘(송신 측 문제 해결) : 처음 data는 작은 data라도 그냥 전송하고 이후에는 버퍼가 찰 때까지 혹은 RTT(Round Trip Time)만큼 기다리고 보낸다. 빨리 보내야 하는 데이터에 대해서는 option으로 관리해 주어야 한다.
Clark 해결(수신 측 문제 해결) : 어플리케이션이 버퍼의 데이터를 늦게 read할 때 생기는 문제. 이때 송신자에게 자신의 window size를 0으로 알리고 버퍼에 여유가 있을 때 정상적인 size를 알려준다.

Ack의 숫자를 줄이는 방법

data를 받고 ack을 보낼 때 보낼 data가 있으면 함께 보낸다.
Ack을 보내기전에 500ms만큼 기다렸다가 보낼 데이터가 있는지 확인한다.
두 개의 데이터를 받았을 때 하나의 Ack만 보낸다.

응급상황 시 Ack 전송

패킷 손실을 detect하면 무조건 ack을 전송한다.
내가 잃어버린 패킷을 수신하면 바로 Ack 전송한다.
받은 패킷을 또 다시 받는 경우에 바로 Ack을 보낸다.

Fast retransmission

3번의 같은 ack을 받으면 손실로 간주하고 Time-out까지 가기전에 재전송을 한다. 또한 재전송을 요청받은 패킷만 전송하는 selective 방식을 option으로 설정할 수 있다.

Classful addressing

class A : 8/24, class B : 16/16, class C : 24/8
subnet : data 전송을 위해서는 local network에서 broadcasting을 통해 MAC 주소를 알아야하는데 LAN을 subnet으로 나누면 효율성이 높아진다.

Classless addressing

prefix와 suffix가 유동적

NAT

한 LAN에서 사용하는 사설망, 외부와 내부를 포트번호로 호환

IP Protocol

Time to live : loop path를 방지하기 위해 hop counter를 둔다.
header길이는 최소 20바이트
데이터 전송 과정 :
1.
Transport layer에서 데이터를 가져와 checksum계산과 헤드 붙이는 과정 수행
2.
라우터당 hop counter를 줄이며 routing table을 보고 다음 hop 결정
3.
필요하다면 Fragmentation과정 후 Datalink layer로 전송
4.
목적지까지 왔으면 Reassembly 모듈로 보냄
5.
Offset과 M bit가 0이면 바로 버퍼에 전송
6.
아니라면 reassembly table에 추가 혹은 entry 생성
7.
마지막 fragmentation인 경우 재조합 후 버퍼로 전송(fragmentation 패킷이 늦게 오면 time-out이 발생하여 모든 패킷 버린다. 재전송은 TCP가 알아서 처리한다.)

Fragmentation

네트워크마다 MTU가 다르다.
IP header의 flag field를 통해 마지막 패킷인지 뒤에 더 쪼개져 있는 패킷이 있는지 파악할 수 있다.
같은 Identification이면 같은 패킷이라는 의미

ICMP는 Network layer에서 검출할 수 있는 에러를 검출하는 프로토콜이다.

물리적 링크가 깨짐
목적지의 TCP가 닫힌경우
Do not fragmentation인데 MTU가 작아서 전송이 불가

ARP Protocol

목적지의 MAC 주소를 모르는 경우 broadcast(목적지 MAC주소 FFFF)를 통해 request
해당 IP주소를 가진 기기는 unicast로 패킷의 전송정보를 보고 전송
스푸핑발생 가능성이 있다.

Modem과 Codec

Modem : 디지털 데이터 -> 아날로그신호
모뎀은 디지털 데이터의 진폭(ASK), 주파수(FSK), 위상(PSK), QAM(진폭+위상)에 따라 다른 bps를 가진다.
Codec : 아날로그 데이터 -> 디지털 신호
방식으로 PCM이 있다. PCM은 표준화, 양자화, 부호화, 복호화, 여파화순서로 진행

ARQ

오류 검출 후 재전송, 자동 반복요청
stop&wait 방식 : Ack이나 Nak을 기다린다. BASIC 전송 절차에서 사용
go-back-n ARQ : NAK이 오지 않으면 계속 데이터를 전송, 오류가 발생하면 그 프레임부터 모두 재전송. HDLC, SDLC 전송 절차에서 사용
Selective-repeat ARQ : Go back방식의 중복 전송을 보완, HDLC 전송 절차에서 사용

해밍코드

수신측에서 오류가 발생한 비트를 찾아 직접 오류를 수정하는 방식
1비트 수정만 가능
해빙거리 : 일치하지 않는 비트의 개수

다중화기

하나의 통신회선에 여러 대의 단말기가 동시에 접속하여 사용할 수 있도록 하는 장치
FDM(주파수 분할) : 유효 대역폭이 클 때 사용,
TDM(시간 분할) : 유효 전송률이 클 때 사용

CSMA/CD

수신자가 이미 통신을 하고 있으면 임의의 시간동안 대기