Computer Network
프로토콜이란..?
복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약.
큐잉지연과 패킷손실
큐잉지연은 저장 후 전송과정에서 각 노드에 먼저 들어온 패킷이 처리 완료될 때까지 일시적으로 대기 하는 지연을 의미한다.
만약 큐가 비어있다면 큐잉지연은 0 이지만 많은 패킷이 큐에 대기 하고 있다면 큐잉지연이 크다. 또한 큐의 크기는 고정되어 있기 때문에 만약 일시적으로 큐의 범위를 벗어나는 많은 패킷이 라우터로 들어오게 되면 큐의 범위를 초과 하여 초과한 패킷들의 손실(packet loss)이 발생할 수도 있다.
회선교환과 패킷교환
- 회선교환
- 즉 회선교환 방식에서는 목적지로 전송을 하기 전에 먼저 회선을 설정 한다. 일단 회선이 설정되면 그 정해진 경로인 회선을 통해서만 데이터를 통신한다.
- 패킷교환
- 고정된 경로가 미리 설정되지 않는다. 전송은 패킷 단위로 독립적으로 이루어진다.
패킷교환간 지연
처리 지연
- 패킷의 헤더를 점검하는 등의 작업 을 하는데 걸리는 지연을 의미
큐잉 지연
- 패킷을 전송할 때는 바로 전송하는 것이 아니라 큐에 저장을 했다가 순차적으로 전송을 합니다.
- 이때 이 전송을 기다리는 시간 이 바로 큐잉 지연이라고 하는데 이는 라우터가 네트워크 상의 혼잡도에 따라 전송량을 결정하므로 혼잡도에 의존적이라고 할 수 있습니다.
- ※ 혼잡도 : 패킷의 많고 적음.
전송 지연
- 실제로 송신자가 보내고 싶은 전송량과 해당 통신 라인을 통해 보낼 수 있는 전송량이 다르기 때문에 나타나는 지연으로 송신측이 보내고 싶은 전송량 / 라인이 전송할 수 있는 처리량 으로 정의할 수 있습니다.
- 즉 전송지연 = 패킷의길이/링크의 전송률 이라고 할 수 있습니다.
전파 지연
- 전파지연 = 링크의 길이/전달속도(고정된 값)
- 해당 라인에서 사용할 수 있는 속도는 고정되어 있기 때문에 링크의 길이에 비례하여 지연이 생기는데
- 현재는 전달 속도가 매우 빠르기 때문에 큰 의미는 없는 지연이라고 할 수 있습니다.
OSI 7 Layer
- 응용계층
- 응용 프로그램과 통신 프로그램 간의 인터페이스를 제공
- telnet, FTP(file), DNS(IP주소변환), SMTP(메일전송)
- 표현계층
- 응용 계층에 대해 데이터 표현 방식의 변환, 암호화 등의 서비스를 제공
- 세션계층
- 종단장비 간 세션(통신)의 시작, 종료 및 관리 절차 등을 정의
- 전송계층
- 쌍방 사용자간의 데이터 전송의 신뢰성 제공
- 동시에 여러개의 연결을 가능하게 하는 다중화, 역다중화 기능 제공
- 네트워크계층
- 패킷의 전달 경로를 정하는 기능을 제공(라우팅)
- 데이터링크계층
- 오류없이 전달하기 위한 제어정보를 추가하는 기능 제공
- 맥주소를 이용해서 종단간 전달시 네트워크 헤더를 까보는지 안까보는지 확인하는 용도로 사용
- 물리계층
- 물리적 매체를 통해 비트 흐름을 전송하기 위해 제공하는 기능 제공
3 hand shaking
TCP 프로토콜에서 연결 성립을 하는 과정
- client -> server SYC 전송
- server -> client ACK + SYC 전송
- client -> server ACK 전송
4 hand shaking
TCP 프로토콜에서 연결 종료를 하는 과정
- client -> server FIN 전송
- server -> client ACK 전송
- server -> client FIN 전송
- client FIN 수신 시 TIME_WAIT를 걸어서 받지 못한 패킷이 있나 대기 클라이언트 측 연결 종료
- client -> server ACK 전송
- server에서 ACK 수신시 서버 측 연결 종료
프록시 서버
서버와 클라이언트 사이의 새로운 중계 서버이다. 서버의 내용 일부를 웹 캐시에 저장하고 클라이언트가 웹 캐시에 있는 내용중에서 요청을 한다면 프록시 서버에서 서버를 거치지 않고 바로 클라이언트로 준다. (속도향상)
프록시서버를 거쳐서 서버에 요청시 프록시서버의 IP로 접근 하는 것이 되기 때문에 IP우회가 가능하다. (IP 우회기능)
웹서버 앞단에 프록시 서버를 두면 프록시 서버가 털려도 realDB 전체가 털리지는 않으므로 보안용으로도 사용
쿠키
쿠키는 사용자가 웹 사이트를 처음 방문할 때 웹 사이트에서 사용자 컴퓨터의 하드 디스크에 저장해 놓는 작은 파일, 쿠키의 역할은 사용자가 해당 사이트를 다시 방문할 때 그 사이트에 알려주는 것이다.
DNS
호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행
BitTorrent ?
- P2P 방식의 파일 공유 프로토콜로서, 파일을 여러개의 조각으로 나누어 서로 공유하는 것이 특징
- swarm : 공유 파일마다의 Hash(고유식별자) 정보와 피어 리스트의 정보 모음.
- 토렌트 파일에 명시된 tracker server 접속 시도
- Swarm이 없으면 생성, 있다면 50개의 피어 랜덤 선정하여 유저에게 전송
- hash 전송으로 다른 peer와 연결
- 자신이 가지고 있는 piece와 필요한 piece 요청 및 전송
GBN & SR
GBN : 수신측에서 잘못 받은 패킷 번호부터 다시 재전송
SR : 잘못 받은 패킷만 재전송
흐름제어
송신측과 수신측의 데이터 속도 차이를 해결하는 기법
- stop and wait : 매번 전송한 패킷에 대해 확인응답을 받아야만 그 다음 패킷을 전송하는 방법
- sliding window : 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하여 제어 송신 버퍼의 범위는 수신 측의 여유 버퍼 공간을 반영하여 동적으로 바뀜
혼잡제어
- 송신측의 데이터 전달과 네트워크 속도차이를 해결하기 위한 기법
- slow start : 윈도우 크기를 두배씩 늘리다가 혼잡현상 발생 시 1로 떨어뜨림
- fast recovery : slow start로 시작하다가 혼잡현상 발생 시 속도를 반으로 떨어뜨리고 선형으로(1씩) 증가 시킴
TCP & UDP
- TCP
- 연결형 서비스로 가상회선 방식
- 3 hand shaking 으로 연결 4 hand shaking으로 해제
- 흐름 제어 및 혼잡 제어 제공
- 높은 신뢰성
- UDP보다 느리다
- UDP
- 비연결형 서비스
- UDP 헤더의 checksum으로 최소한의 오류 검출
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
IP 자동 할당 (DHCP)
- 인터넷 연결시 broadcast로 자신의 ip를 할당해달라는 메시지를 보냄 (broadcast)
- DHCP 서버에서 client에게 ip를 가르쳐줌 (unicast)
- client는 다시 해당 ip를 쓰겠다고 broadcast로 송신 (broadcast)
- DHCP 서버가 해당 메시지 수신 시 알겠다고 메시지 송신 (unicast)
NAT
사설ip를 외부망 이용시 공인ip로 바꾸어주는 기술
공인ip는 한정되어 있어서 사설 ip를 사용하는 경우가 많은데 사설 ip 내부 접속은 가능하지만 외부 네트워크는 이용이 불가능하다. 그렇기 때문에 현재 사용하는 사설 ip를 공인 ip로 변환시켜서 사용하게끔 한다.
웹 페이지 로딩
Ex : www.naver.com -> enter
- local dns(PC내부의 DNS)에게 www.naver.com의 IP 주소를 물어봄
- local dns에 www.naver.com의 IP주소가 등록되어 있다면 바로 ip 호출
- local dns에 없는 경우 root dns 서버에게 www.naver.com의 IP 주소를 물어봄
- root dns 서버는 www.naver.com을 모르기 때문에 .com 도메인을 관리하는 dns 서버에게 물어봄
- .com 도메인을 관리하는 dns 서버도 모르기 때문에 다른 dns 서버를 가르쳐 주면서 .naver.com 도메인을 관리하는 서버에게 물어봄
- .naver.com을 관리하는 dns 서버는 www.naver.com의 ip주소를 알고 있으므로 ip를 알려줌
- 로컬 dns 서버는 받은 ip주소를 캐싱하고 해당 ip 주소 정보를 pc로 넘김
- 해당 ip주소로 접근 시 웹 서버에 있는 웹페이지에 대한 정보를 download
- loader가 서버로 받은 리소스를 읽고 파일인지 데이터인지 다운로드할지 말지를 결정함
- 웹 엔진이 받은 문서를 파싱해서 DOM트리 구성
- 스타일 구조체를 생성해서 DOM트리와 합쳐서 렌더 트리를 만듦
- 레이아웃 처리 트리의 루트부터 단말들까지의 크기를 결정
- 페인트 : 렌더링 엔진이 배치를 시작함
- 리플로우 : 사용자의 request로 웹페이지의 변경 시 영향 받은 모든 노드들의 수치를 재계산 하는 과정 즉 렌더 트리를 새로 만드는 과정
- 리페인트 : 리플로우로 변경된 렌더 트리에 맞게 새롭게 페인트
SSL
클라이언트와 서버간의 통신을 공인된 제 3자가 보증해주는 문서
- 동작방식
- 웹브라우저가 서버에 접속하면 서버는 제일 먼저 인증서를 제공한다.
- 브라우저는 인증서를 발급한 CA가 자신이 갖고있는 CA 리스트에 있는지 확인한다.
- 리스트에 있다면 해당 CA의 공개키를 이용해서 인증서를 복호화 한다.
- 인증서를 복호화 할 수 있다는 것은 이 인증서가 CA의 비공개키에 의해서 암호화 된 것을 의미한다. 즉 데이터를 제공한 사람의 신원을 보장해주게 되는 것이다.
DHCP * NAT * 사설IP * IPv4
'기술면접 > ComputerNetwork' 카테고리의 다른 글
Vue.js & javascript 면접 질문 요약 (0) | 2018.12.04 |
---|---|
Computer Network & Web 면접 질문 요약 (0) | 2018.12.02 |