FTP 원리
·
Computer Science/Computer Network
FTP는 일반 응용프로그램과 달리 제어 채널과 데이터 채널이라는 두가지 연결이 존재한다.제어 채널은 FTP 연결을 설정하고 데이터 채널은 파일 데이터를 전송한다. 유저로 부터 FTP 연결 요청이 들어오면 사용자 인터페이스 모듈이 사용자 이름과 암호를 해석하여 명령 송수신 모듈에 전달한다. 이때 사용자들은 무수히 많고 하나하나 아이디를 부여해 줄 수 없기 때문에 익명FTP 서비스를 제공한다. 익명 FTP 서비스는 아이디를 admin , 비밀번호를 관례상 사용자의 이메일주소로 설정한다. 명령 송수신 모듈은 FTP서버와 연결을 시도하여 제어 채널을 설정하고 명령이 입력될 때 마다 사용자 인터페이스를 통해 명령을 해석하고 명령 송수신 모듈을 통해 FTP서버에 전송된다. 이때 명령에 데이터 전송등의 내용이 존재하..
DNS
·
Computer Science/Computer Network
네트워크에서 통신을 하기 위해서는 IP주소가 반드시 필요하다. 호스트들을 IP주소로 구분하기 때문에 데이터가 어디서 어디로 가야할지 정할 때 반드시 필요하기 때문이다. 그러나 보통 우리는 숫자 주소를 외우지 않고 문자 주소를 외우고 있다. 즉 어디선가 문자 주소를 숫자 주소(IP주소)로 변환해 주고 있다는 것! 이 기능을 현대에선 DNS가 서비스해준다. 과거에는 호스트 이름과 IP 주소 쌍으로 이루어진 데이터들을 모아놓은 호스트 파일이란 것을 만들어 하나의 컴퓨터가 전적으로 관리했다. 그러나 인터넷이 발전함에 따라 사용자수가 기하급수적으로 늘고 중복된 IP와 도메인 이름을 수작업으로 관리할 수가 없어졌기 때문에 오늘날 DNS 서비스가 탄생하게 된 것!  DNSDNS란 계층적 주소를 지원하는 분산형 데이터..
WWW
·
Computer Science/Computer Network
웹은 인터넷 사용자(클라이언트)가 로그인 없이 WWW(World Wide Web) 서버에 접속할 수 있는 서비스를 말한다.웹 브라우저는 웹클라이언트와 웹서버 사이에서 웹서버의 정보를 웹클라이언트에게 보여주는 프로그램이다. 웹 클라이언트/서버웹브라우저는 URL(Uniform Resource Locator)이 새로 쓰여질 때마다 TCP 연결을 설정하고 해제한다. 즉 사용자가 웹 페이지를 봤을 때에는 이미 연결이 해제된 상태이다. (연결에 대한 정보가 없이 데이터를 주고받기 때문에 비상태 프로토콜이라고 한다.) URL은 전송프로토콜과 도메인 네임 그리고 파일경로로 이루어져있다. http://www.naver.com/index.html 클라이언트는 DNS 서버에 접속해 도메인 네임을 key로 하여 IP주소를 값..
전송계층
·
Computer Science/Computer Network
전송계층에는 두가지 서비스 프로토콜이 존재한다. 연결형 서비스를 지원하는 TCP와 비연결형 서비스를 지원하는 UDPUDP는 TCP에 비해 매우 간단한 구조와 개념을 가진 프로토콜이다.  UDPUDP는 비연결형 서비스를 지원하며 헤더와 데이터에 대한 checksum 기능을 제공한다. 비연결형 서비스이기 때문에 BestEffort 방식으로 데이터를 전송하며 이는 수신 프로세스가 데이터를 반드시 수신 받는 것을 보장하지 않는다. 다만 최선을 다해 전송할 뿐!! 이 말은 데이터가 도착했는지 확인하지 않는다는 것이고 그로인해 전송 속도가 빠른 프로토콜이다. UDP 헤더에는 SourceAdd, DestAdd, Length, Checksum 4가지가 들어간다. 수신 프로세스가 UDP 헤더의 checksum에서 오류를..
16. 리스트 + 튜플 조합의 정렬
·
Language/Python
리스트 안에서 튜플을 사용하는 자료형을 알고리즘 문제를 풀면서 자주 보았다. 그때마다 썼던 정렬 형식을 정리하려고 쓴 글!  1. 첫 번째 원소로 오름차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : x[0])2. 첫 번째 원소로 내림차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : -x[0])L.sort(key = lambda x : x[0], reverse = True)3. 두 번째 원소로 오름차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : x[1])4. 첫 번째 원소로 오름차순, 첫 번째 원소가 같은 경우 두 번째 원소로 오름차순L = [(3,..
TCP 프로토콜
·
Computer Science/Computer Network
전송계층은 데이터 링크 계층과 기능적 측면(흐름제어, 오류제어, 순서 확인 ---)에서 유사하다. 그러나 데이터 링크 계층은 물리적 선로를 사용하기 때문에 라우팅 기능이 필요없고 (Node to Node) 전송 계층은 논리적 선로를 사용하기 때문에 라우팅 기능이 필요하다. Logical Link를 통해 데이터가 호스트에서 호스트까지 전송되는 시간동안 지연이 발생한다.그 말은 지연이 발생하는 그 시간동안 데이터가 네트워크에 저장돼있다고 볼 수도 있는데, 이 때문에 네트워크를 잠재적 기억 장치라고 부르기도 한다. TCP 주요기능1. 흐름제어 : 데이터 링크와 유사하다. 수신 버퍼가 넘치면 패킷 손실이 발생하므로 송신 윈도우의 하단값을 조절한다. 2. 오류제어 : 데이터 변형과 분실의 처리로 대부분 소프트웨어..
네트워크 계층
·
Computer Science/Computer Network
네트워크는 유선 고정 사용자 ( PSTN, ISDN 등의 음성 서비스 ) 에서 무선 이동 사용자 ( 광대역 멀티 미디어 ) 로 추세가 바뀌고 있다. 이때 우리는 이동 사용자의 IP를 어떻게 처리할지 고려해야한다. 이동IP프로토콜이동 IP 프로토콜은 터널링 방식으로 구현된다. 터널링 방식을 서울에서 일본으로 여행을 가는 것으로 생각해보자. 기존 유선 고정 사용자 방식에서는 철수가 서울에서 공항까지 버스를 타고 버스에서 내려서 비행기를 타고 비행기에서 내려서 일본에 도착한다. 즉 철수는 자신이 교통수단을 환승하는 사실을 인지한다. 무선 이동 사용자 방식에서는 철수는 버스에서 내리지 않는다. 대신에 버스를 비행기에 태운다..!철수가 잠이 들었다면 자신이 버스인지 비행기인지 알 수 없을 것이다. 이런 방식을 터..
IP 프로토콜
·
Computer Science/Computer Network
네트워크 계층에서 가장 중요한 작업은 패킷의 이동경로를 정하는 작업, 즉 라우팅 기능을 적절하게 진행하는 것이다.경로를 선택함에 있어서 중요한 점은 혼잡제어와 패킷의 분할/병합이 필요하다. 라우팅라우팅은 라우팅 테이블을 가지고 경로를 결정하는 과정이다. 라우팅 테이블은 네트워크 상황에 따라 달라질 수도(동적 라우팅) 고정될 수도(정적 라우팅) 있다. 혼잡제어혼잡제어는 경로에 패킷 수가 과도하게 집중되면 발생하는 혼잡을 제어하는 것이다. 먼저 흐름제어와 혼잡제어를 구분해보자. 혼잡제어는 서브넷을 포함한 전반적인 네트워크의 전송능력을 다룬다. 흐름제어는 두 호스트 사이의 점대점 전송속도를 컨트롤 하는 것이다. 혼잡의 원인으로는 지나치게 많은 패킷의 유입이 있다. 패킷이 오버하게 오면 라우터가 이 내용을 패스..