1. Address Mapping

- IP address : universally unique

- Ethernet address(MAC address) : physical address / local LAN 에서 사용

 

# Address resolution 방법 2가지

- static : IP와 MAC 주소를 정적으로 매핑시켜놓음, 랜카드를 바꿀 경우 해당 랜카드에 맞춰 이더넷 어드레스가 바뀌므로 매핑되어있는 정보가 무의미해짐. 실질적으로 사용하기 힘듬

- dynamic : ARP , RARP 등이 있음.

 

# ARP (Address Resolution Protocol)

- IP 에 대응하는 MAC주소를 알아내기 위해.

- LAN 내에 broadcast 하고, broadcast를 받은 시스템 중 자신의 IP에 해당하는 시스템만 MAC주소를 응답.

- 20~30분간 캐시메모리에 저장

 

* ARP packet format

ARP packet format 

- 자신의 IP주소

- 자신의 Ethernet 주소

- 상대방의 IP주소

- 상대방의 Ethernet 주소 

를 넣어 전송, 회신시 상대방 Ethernet 주소를 돌려받음.

 

* proxy ARP

141.23.56.21 의 MAC을 알아내고자 ARP 요청을 했을 때, proxy ARP router 가 자신의 MAC 으로 대신 응답. 보안을 위해 사용.

 

* ARP Announcements

컴퓨터 OS가 부팅될 때 ARP broadcast 를 하여, LAN 내의 컴퓨터들의 cache 를 갱신시키게 함(자신의 IP/ethernet address갱신할 수 있게). 이때 동일한 IP를 사용중인 LAN 내의 컴퓨터가 있다면 IP충돌 노티가 발생.

 

 

# RARP (Reverse Address Resolution Protocol)

- MAC 에 대응하는 IP주소를 알아내기 위해 (ARP와 반대)

- MAC 주소를 담아 broadcast하며, 서버가 IP주소를 회신해 줌.

 

# DHCP (Dynamic Host Configuration Protocol)

- 미사용 중인 IP를 자동으로 할당

- 고정 IP 할당도 가능

- expired time 을 주어 일정시간동안만 유효한 IP 주소 제공

DHCP 동작 순서도

1) 컴퓨터가 LAN내에 broadcasting

2) 서버가 DHCP OFFER

3) 남아있는 IP 유효시간의 50% 도달시 서버에 DHCP request 를 다시보내 renewing(갱신)

4) 남아있는시간의 87.5% 도달시 1) 과정 반복

 

# ICMP(Internet control message protocol)

- IP protocol 의 경우 error control 이 없음. 이를 보완하기 위해 나온 프로토콜

- IP packet 사용

- IP header의 protocol field 가 1 인 경우 ICMP 사용

- Error reporting message(에러 보고) :

Destination unreachable, Source quench, Time exceeded, Parameter problems, Redirection

- Query messages(서버가 살아있는지 질의) :

Echo request&reply, Time-stamp request and reply, address-mask request and reply, Router solicitation and advertisement

- ICMP 를 사용의 예: ping(Echo request&reply), traceroute

 

* traceroute 동작 방식

host A 에서 host B 까지의 라우팅 알아내고자 할 때, TTL(Time to live(거쳐갈 수 있는 라우팅 갯수)) 을 사용한다.

TTL 1 로 보내어 첫번째 라우터 a에 도달시 TTL 0이 되어 라우터가 메시지를 버리며 본인의 IP를 ICMP 로 회신함. 

host A 는 a 의 IP를 찍음.

다시 TTL 2 로 보내어 a 다음의 라우터 b까지 도달하게 하며 b는 본인의 IP를 ICMP로 회신함.

host A 는 b 의 IP를 찍음. 이를 반복하여 host B까지의 라우팅 경로를 찍게 됨.

 

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

 

반응형

[ Data Link layer ] 

- upper sublayer : data link control

- lower sublayer : resolving access to the shared media (multiple-access resolution)

(master/slave 가 없는 구조에서 peer to peer 송신의 문제를 어떻게 해결할 것인가)

 

Multiple-access protocol의 종류

 

# collision : 동시에 여러개의 station이 매체에 access

 

[ ALOHA ]

- hawaii 대학교에서 개발됨(1970)

- LAN의 시초

- 모든 station 은 base station 을 통해서 통신

- 송신할 데이터가 있으면 station은 base station 을 통해 데이터를 바로 송신

회색 부분은 collision이 발생하는 부분

- base station을 공유하므로 collision이 발생할 가능성이 높음

- ACK 이 오지 않아 타이머 초과시(eg: collision으로 인해) station 은 일정시간(backoff time)을 기다린 후 재송신을 한다. (기다리는 시간은 2의 n 제곱. n이 retry 마다 증가, 특정 횟수(backoff limit)이상 실패시 포기 후 재시도는 나중에)

ALOHA 의 resending 순서도

 

 

[ Slotted ALOHA ]

- station이 데이터 송신을 마구잡이로 하는게 아니라, slot 을 정해놓고 slot의 시작 시간에 도달했을 때만 station이 데이터를 송신

collision으로 손해보는 시간이 기존 ALOHA 보다 적다(효율 높음)

 

[ CSMA (Carrier Sense Multiple Access) ]

- 데이터를 보내기 전 데이터를 누가 보내고 있는지 확인(sense before transmit) 후 데이터 전송

- propagation delay로 인해 collision 가능성은 여전히 존재

A의 frame 전송이 D에게 감지되기 까지 걸리는 시간(전파 시간)이 collision이 발생할 수 있는 vulerable time이다.

 

# Persistence methods

아래와 같은 두 상황에 어떻게 처리 할 지에 대한 방법.

- when channel is busy : 채널이 이미 사용 중일때

- when channel is idle : 채널이 사용중이지 않을 때

 

- persistence 의 종류 3가지

1) 1-persistent : 채널의 상태를 계속 확인하여 idle 일 때 바로 보냄 (효율은 좋지만 collision가능성 높음) (보통 경우 사용)

2) Nonpersistent : 일정 간격으로 확인(sense)하여 idel 이면 보냄

3) p-persistent : 채널 상태를 계속 확인하여 idle 일 때 p 확률로 데이터를 보냄 (보내지 않는 경우, time slot이 지나고 난 후 p 확률로 재시도)

persistence 의 종류
persistence 순서도

 

[ CSMA/CD (CSMA with Collision Detection) ]

- 유선랜에서 사용.

- CSMA + CD(collision Detection): 충돌 감지시 전송 중지

collision을 감지(detection) 할 경우 전송 중지
CSMA/CD 에서의 resending 순서도

 

[ CSMA/CA (CSMA with Avoidance) ]

- 무선랜에서 사용

- CSMA + CA(collision Avoidance): collision 을 회피

- CD를 사용못하는 이유 : 무선환경에선 기타 요소가 많아 collision detection(CD)가 불가.

* 유선환경에서 collision 을 감지하는 방법 : 유선 송신 시간*2 (보내는시간 + 충돌 후 되돌아오는 시간) 소요시 collision

 

- avoidance 방법 3가지

1) interframe space(IFS) : idle 상태에서 바로 보내지 않고 IFS 를 두어 collision 회피

2) Contention Window : (=backoff time) 충돌시 일정 시간(2의 n제곱) 기다린 후 재전송 시도

3) Acknowledgements : ACK 를 기다리는 timer 

CSMA/CA 순서도

 

 

# multiple-access resolution 3가지 방법

1. contention (Window) : 충돌 후 window 만큼 기다린 후 재시도

2. reservation : 예약 후 전송

3. channelization : 채널화 

 

 

[ Controlled-access protocols ]

1. Reservation : reservation frame 을 전송하여 데이터 전송 예약

2. Polling : primary(master)/secondary(slave)

3. Token passing : token을 가진 station만 데이터 전송

 

[ Channelization protocols ]

1. FDMA (Frequency-Division Multiple Access)

- 컴퓨터마다 사용 주파수(=채널)를 다르게

- 라디오에서 사용 (eg: mbc 91.9)

* Hz : 1초에 진동 횟수(100Hz : 진동폭 1초 100회)

 

2. TDMA (Time-Division Multiple Access)

- 시간을 할당하여 컴퓨터에 할당 및 컴퓨터는 할당받은 시간에 데이터 전송

 

3. CDMA (Code-Division Multiple Access)

1) 하나의 채널에 모든 컴퓨터가 데이터 전송

2) 모든 컴퓨터가 데이터를 동시에 보낸다는 점에서 TDMA와 다름

3) 하나의 채널에서 모든 컴퓨터가 데이터를 전송하므로 FDMA와 다름

4) CDMA 구현 방법

 

# Chips code

스테이션이 가지고 있는 sequence of number

Chips code의 예 (순서대로 A,B,C,D)

 

# Chips Code 를 정하는 방법

Chips Code 를 구하는 방법
station 이 4개인 경우, A B C D 는 위에서 부터 순서대로 [1,1,1,1], [1,-1,1,-1] 와 같다(C, D 생략)

 

# orthogonal seqences (직교)

다른 코드와 곱하면 0, 자신 코드와 곱하면 스테이션 수가 나오는 성질 (동일 채널에서 다른 코드를 구분하기 위한 방법)

위 A,B,C,D는 각각 자신과 곱해서 더할 경우 스테이션의 수인 4, 다른 코드와 곱하면 0이 나옴

(eg: A * A = [1,1,1,1], A * B = [1,-1,1,-1])

 

CDMA Encoding

# Encoding

Bit 0 은 -1, Bit 1 은 +1, Silent 는 0

station A는 [+1,+1,+1,+1], 전송 하고자 하는 Bit 0은 -1 이므로 이를 곱해 [-1,-1,-1,-1] 로 만듬

station B는 [+1,-1,+1,-1], 전송하고자 하는 Bit 0 은 -1 이므로 이를 곱해 [-1,+1,-1,+1] 로 만듬

C, D 는 생략..

ABCD 를 모두 더한 값 [-1,-1,-3,+1] 을 전송

CDMA Decoding

# Decoding

Station A 의 데이터를 확인하려면 전송 받은 값 [-1,-1,-3,+1] 에 Station A [+1,+1,+1,+1] 을 곱함.

곱해서 나온 값 [-1,-1,-3,+1] 를 더하면 -4 가 나옴. 이를 4로 나누면 -1 이 나오며 이는 Bit 0을 의미.

 

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

 

 

반응형

[1강. 링크계층 프로토콜]

1. Data link 계층에서 하는 일

1. Frame synchronization: frame송수신 동기화

2. Flow control: 수신쪽에서 overflow가 일어나지 않도록 흐름제어

3. Error control

4. Physical addressing: 식별

5. Access control: 접근제어 (multiplex 관련)

 

2. Poll/Select

multidrop/multipoint 방식에서 line cost 를 절감하기 위해 사용하는 방법

* multidrop/multipoint : 여러 터미널이 하나의 선을 공유하는 경우 (ex: 전화선)

1) polling : primary가 secondaries 에 전송할게 있는지 질의 (데이터흐름 secondaries->primary)

2) select : primary 장치가 전송할게 있을때마다 사용 (데이터흐름 primary->secondaries)

 

3. Framing

data link 계층은 bits를 frames 로 packing. 각각의 frames 은 구분가능.

frame 내에서 single bit error 가 존재할 경우 전체에 대한 재전송이 필요.

1) fixed-size framing : 고정크기

2) variable-size framing : 가변크기

 

[2강.데이터링크 계층 프로토콜의 HDLC]

1. Frame

1) Character-oriented protocols

Character(2bytes = 8bit) 가 최소단위의 frame으로 사용됨

#byte-stuffing이란

flag bit와 data 의 bit 가 일치하는 경우 프레임 단위 구분이 모호해지는 문제가 있음.

이를 구분하기 위해 byte-stuffing(or character stuffing) 전략을 사용.

이때 삽입되는 byte를 ESC(escape character)라고 칭함

 

 

예) ESC 삽입의 예

flag와 일치하는 data bit 가 있을 경우 앞에 ESC 삽입.

ESC와 동일한 bit가 있을 경우 그 앞에도 ESC 삽입.

ESC 뒤의 데이터는 무조건 데이터 bit로 간주.

 

2) Bit-oriented protocols (주로사용)

01111110 을 주로 flag 로 사용

 

#Bit stuffing

flag와 data bit을 구분하기 위해 011111 와 같이 1이 연속적으로 5개 있는 경우 그뒤에 0을 삽입하여 flag와 data bit 를 구분

* 수신측은 1 다섯개 뒤에 있는 0은 무조건 제거

 

 

2. Flow control

수신측의 속도를 맞춰 송신측의 속도 제어

# Flow control 방법 세가지

1) XON/XOFF : 전송stat/stop

ex: PC->프린터, 프린터 출력속도가 느려 버퍼가 거의 찰 경우 PC에 stop 요청 이후 start 요청

RTS/CTS handshake 는 Xon/Xoff 기능을 위해 사용됨

2) Stop-and-wait : frame을 1개씩 보내기 

ex: 프레임 1개 전송 후 잘 받았다는 회신을 받아야 다음 프레임 전송

3) Sliding window  : frame 여러개를 한번에 보내기 

* Window size = outstanding frame의 갯수

                    = unacknowledged frame

                    = ACK를 받지 않은 frame

                    = ACK 없이 보낼 수 있는 최대 frame 수

eg. window size 가 3인 경우, ACK 없이 최대 3개 프레임을 전송 할 수 있음.

eg2. window size가 3일 때, ack 를 첫번째 송신후 받은 경우 두번째 프레임으로 부터 다시 3개까지 ACK 없이 프레임 전송 가능

 

3. Error Control

Error detection + Error correction

# Error Control 방법

1) Discarding the errors : 에러 무시 (인터넷 전화)

2) Forward Error Correction(FEC) : 수신측에서 에러 수정

3) Automatic repeat request(ARQ) : 재전송

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

반응형

DNS : Domain Name System

hostname 를 ip 주소로 해석

centralize DNS 사용하지 않는 이유

1) 트래픽 집중

2) 먼 거리에 위치한 국가의 데이터베이스 접근 불리

3) 유지보수

4) 에러를 대비한 클러스터링 없음

 

DNS 서버의 위계구조 (hierarchial database)

- Root DNS Servers

- Top-level Domain Servers (TLD)

  : .com, .org, .edu, .net 및 .jp .kr 등의 국가 도메인을 담당 eg) 한국인터넷정보센터가 .kr 을 담당하는 TLD

- Authoritative DNS Servers

  : 각 기관이 가지고 있는 DNS 서버

  : 기관내 connected 된 모든 hostname, IP 매핑정보를 가지고 있음

- Local DNS name Server

  : 위계구조에 포함되진 않음, 매핑정보를 caching 하며 proxy server로도 불림

 

1) client는 root dns server에 com DNS server 질의

2) client는 get amazon.com DNS 서버를 알아내기 위해 .com DNS server에 질의

3) client는 www.amazon.com IP 주소를 알아내기 위해 amazon.com DNS server에 질의

 

 

DNS root name servers 는 세계 총 13군데 위치

우리나라는 가장 가까운 일본 DNS 사용

 

 

DNS 위계 구조 호출 순서

root > TLD > authoritative 순서로 호출

local DNS server에 캐싱하여 상위 레벨 DNS 서버의 부하방지

Local DNS Server 의 Outdated Domain name 정보의 확인을 위해 TTL(Time-To-Live) 레코드 사용

유효기간(TTL) 이 지난 경우 캐시 삭제됨

 

 

DNS records

name, value, type, ttl

 

레코드 타입별 name/value

A (Host) : name(호스트 서버네임) value(IPv4) eg)authoritative DNS 

AAAA : name(호스트 서버네임) value(IPv6) 

NS (Name Server) : name(도메인네임) value(authoritative 서버네임) eg) TLD DNS

CNAME : name(alias) value(canonical name)

 

 

DNS query 순서

1) 

클라이언트(브라우저)에서 /etc/resolv.conf 에 지정되어있는 로컬 NS 서버 (네임서버) 로 www.yahoo.com 에 대한 요청

2)

네임서버는 root DNS 서버 IP 주소를 기록한 hint 파일을 가지고 있으며 이를 참조하여 root DNS 서버에 www.yahoo.com 에 대한 요청 전달.

root DNS 서버는 TDL(최상위네임서버)들의 글루레코드를 가지고 있으며 이를 참조하여 .com 네임서버를 참조하라고 응답.

글루레코드(glue record)란 네임서버명(NS 레코드)과 IP주소(A 레코드)을 의미

3)

.com 네임서버 즉, TDL 서버는 .com 을 TDL (최상위도메인) 로 사용하는 도메인들의 글루레코드를 가지고 있으며 이를 참조하여 www.yahoo.com 의 네임서버를 참조하라고 응답

(authoritative DNS server의 글루레코드(NS + A) 응답)

4) 

yahoo.com의 네임서버는 yahoo.com 도메인에 대한 존(zone)파일을 참조하여 www.yahoo.com의 의 IP주소를 네임서버(로컬 NS)로 돌려준다.

(authoritative DNS server 는 IP주소(A 레코드) 를 클라이언트가 최초 요청을 한 네임 서버(로컬 NS)로 응답)

5) 

최초 요청을 했던 네임 서버(로컬 NS)는 클라이언트에게 IP 주소를 전송

 

 

※ 한양대학교 이석복 교수님의 컴퓨터네트워크 강의 내용 정리

※ https://webdir.tistory.com/161

반응형

+ Recent posts