목록Computer Science/네트워크 (12)
취미가 좋다
비슷해보이지만 다른 Blocking과 동기화를 알아보자. 아래처럼 A함수에 B함수가 들어가 있다고 가정한다. def func_A(): func_B() ... Blocking 함수 B의 동작이 마칠 때까지 제어권이 B에게 있다. B이 동작이 끝난 후에 A에게 제어권이 돌아간다. Non-blocking 함수 B가 시작하자마자 제어권을 함수 A에게 넘긴다. 함수 B가 끝나지 않았지만 A가 다음 코드를 실행한다. 즉, 내부에서 호출된 함수가 제어권을 바로 주는 지, 동작을 끝낸 뒤 주는 지에 따라 구별된다. Synchronous (동기) 함수 A가 기다리면서 함수 B의 수행 결과나 종료 상태를 계속 체크한다. Asynchronous (비동기) 함수 B의 수행 상태를 함수 A가 신경쓰지 않는다. Callback ..
TCP는 크게 3가지 제어 기능이 있다. 전송되는 데이터의 양을 조절하는 흐름 제어 데이터가 유실되거나 잘못된 데이터가 수신되었을 경우 대처하는 방법인 오류 제어 네트워크 혼잡에 대처하는 혼잡 제어 이 기능들 덕분에 예외 상황에 크게 신경쓰지 않고 상위 레이어 동작에 집중할 수 있다. 흐름 제어 송신 측과 수신 측의 데이터 처리 속도가 다를 수 있다. 송신 측이 빠를 때 수신 측 버퍼가 넘치는 오버플로우 문제가 발생한다. 이러한 문제를 줄이기 위해 윈도우 크기로 송신 측의 데이터 전송량을 조절한다. 윈도우 크기 : 자신이 처리할 수 있는 데이터의 양 stop and wait 상대방에게 데이터를 보낸 후 잘 받았다는 응답이 올 때까지 기다리는 방식 sliding winodw 송신 측이 수신 측에서 받은 윈..
HTTP (Hypertext Tranfer Protocol) 클라이언트와 서버와 통신을 가능케 하는 프로토콜이다. 브라우저로 인터넷에 접속하는데 사용된다. TCP/IP 위에서 동작한다. 클라이언트가 서버로 요청하는 것이 통신의 시작이다. 이 요청의 목적을 Method로 표시한다. Method 중 대표적인 GET, POST를 살펴볼 것이다. 특징 단방향성 클라이언트가 서버로 요청을 보내고 이에 대한 응답을 받는 단방향적 통신이다. 비연결성 연결이 계속 유지되지 않고 요청에 대한 응답이 끝나면 연결을 끊는다. 무상태성 클라이언트가 서버와 연결된 상태가 아니기 때문에 기본적인 상태를 가지지 않는다. 이를 보안하기 위해 쿠키, 세션, 토큰 등을 사용한다. 응답 코드 2xx 성공 요청이 정상적으로 이주어졌다. 3..
무선 랜에 대해서 알아보자. 무선 랜 랜 케이블을 사용하지 않고 전파를 이용하여 컴퓨터를 연결하는 것을 말한다. 장점 : 랜 케이블이 닿지 않는 장소에서도 통신할 수 있다. 단점 : 속도가 불안정하고 전파가 약하면 연결이 잘 안된다. 보안이 취약하다. 무선 랜은 무선 액세스 포인트(Wireless Access Point, WAP)와 무선 클라이언트(컴퓨터, 스마트폰 등)로 구성된다. 보통 무선 공유기가 WAP 기능을 포함한다. 무선 클라이언트가 WAP와 통신하려면 무선 랜 칩과 무선 랜 어댑터가 필요하다. 무선 랜 어댑터에는 USB 메모리 방식 어댑터와 컴퓨터 카드 방식 어댑터가 있다. 무선 랜을 연결하는 방법 인프라 스트럭처(infrastructure) 방식 : WAP를 통해 통신하는 방식. 보편적으로..
지금까지 살펴본 각 계층의 역할은 아래와 같다. 각 계층에서 데이터가 전달되고 처리되는 과정 네트워크가 아래와 같이 구성되어 있을 때 각 계층에서 데이터가 전달되고 처리되는 과정을 살펴보자. 2대의 컴퓨터가 있고 아래의 경로를 거쳐 데이터가 전송된다. 각 컴퓨터는 LAN 내의 스위치가 있고 LAN을 대표하는 라우터가 있다. 1. 컴퓨터의 데이터가 전기 신호로 변환되는 과정 3-way handshake 완료한 상태라고 가정한다. 상위 계층에서 내려가면서 캡슐화가 진행된다. 1 사용자 웹 브라우저에 URL을 입력한다. 2 응용 계층 웹 서버에 요청을 보내므로 HTTP 프로토콜로 HTTP 메시지 전송한다. HTTP 메시지 → GET /index.html HTTP/1.1 3 전송 계층 TCP 헤더(출발지 포트 ..
마지막 계층인 응용 계층을 알아보자. 이 글에서 말하는 응용 계층은 세션 계층과 표현 계층을 포함한다. 응용 계층에서 동작하는 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 돕는 프로그램이다. 애플리케이션은 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버로 나눌 수 있다. 클라이언트에는 웹 페이지를 보기 위한 인터넷 익스플로러 같은 웹 브라우저, 메일을 주고 받기 위한 Outlook 같은 메일 프로그램이 있다. 서버에는 웹 서버 프로그램과 메일 서버 프로그램이 있다. 응용 계층에는 다양한 프로토콜이 있고, 아래는 대표적인 5가지 예시이다. 프로토콜 내용 HTTP 웹 사이트 접속 DNS 이름 해석 FTP 파일 전송 SMTP 메일 송신 POP3 메일 수신 응용 계층의 애플레케이션에서 데이터를 전..