본문 바로가기

분류 전체보기

(357)
8. FTP *FTP - file transfer protocol의 약자 - 붙어있지 않은 원격의 호스트끼리 주고받을 때 쓰는 프로토콜 - client-server 모델 사용 클라이언트 : 서버에 접속해서 커넥션을 만들고 필요한 파일을 다운로드함 서버 : remote host - RFC 959: 959번 할당해서 사람들이 업데이트하게 됨 - FTP 서버는 포트 21번을 사용 - 두개의 채널을 사용함 * separate control, data connections - 21번 포트로 tcp 사용해서 연결 시도 : 아이디, 비밀번호, 커넥션 관련 정보 - 20번 채널을 하나 더 만들어서 실제 파일을 주고 받음 - 두개의 채널 : out of band 하나의 밴드에서 시그널을 주고받고, 다른 밴드에서 데이터 통신이 일어남..
7. Web, HTTP * http 웹 페이지를 보내는 것 웹페이지의 object들 (텍스트, 오디오, 이미지 등)을 보냄 url : 호스트 ip와 폴더 이름, 파일 이름 모두 합쳐진 것 http는 링크가 있는 걸 주고받는 프로토콜 - 클라이언트 : 크롬, 익스플로러, 사파리 등에서 데이터를 요구하고 받아서 보여지는 형식 - 서버 : 웹서버 http 프로토콜로 요구하는 페이지를 클라이언트에게 전달하면서 동작 - http는 tcp를 사용, 80이나 8080을 사용 - stateless : 상태에 상관없이 클라이언트가 요구하는 페이지를 전달, 어떤 상황이든지 똑같은 페이지를 보여줌 * tcp 연결 지향형 - non persistent : object 마다 connection이 있음 rtt : 한번 갔다가 돌아오는데 걸리는 시간 t..
6. 어플리케이션 레이어 : 클라이언트-서버, P2P * 인터넷을 사용하는 모든 어플리케이션 이메일, 웹, text messaging, remote login, p2p file sharing, game, video streaming, voice over ip, 등 * 네트워크를 지원하는 프로그램 작성 방법 - 사용하는 디바이스에서 카톡, 크롬, 네이버 등 다른 누군가와 통신할 때 데이터를 주고받을 수 있는데 이 때 네트워크를 지원하는 프로그램 작성 방법 : end system, p2p, client-server 등의 상황에서의 각 end system에서 프로그램을 구현하고 소켓만 구현하면 통신 가능 어플리케이션 레이어에서는 end에서 client-server, p2p 등 어떤 구조를 할지 결정 트랜스포트 레이어에서 어떻게 메세지를 사용해서 전달할 건지 (t..
실습 3-2. 주소정보 표현, 인터넷 주소 변환 * IPv4 기반의 주소표현을 위한 구조체 struct sockaddr_in { sa_family_t sin family; // 주소체계 uint16_t sin_port; //port 번호 struct in_addr sin_addr; //32비트 ip주소 char sin_zero[8]; //사용되지 않음 }; ip 주소와 port 번호는 구조체 sockaddr_in의 변수에 담아서 표현함 - sockaddr_in은 bind 함수의 구조체 주소를 전달하는 구조체 이 구조체에 각 정보를 저장하고 소켓주소를 할당하는 bind함수의 인자로 들어가게 됨 이때 ip 주소 저장 변수는 또 다른 구조체로 되어 있음 : struct in_addr struct in_addr{ in_addr_t s_addr; }; // 3..
실습 3-1. 소켓에 할당되는 IP주소와 PORT 번호 * 인터넷 주소 - 인터넷 상에서 컴퓨터를 구분하는 목적으로 사용되는 주소 - 4바이트 주소체계인 IPv4와 16바이트 주소체계인 IPv6가 존재 - 소켓을 생성할 때 기본적인 프로토콜을 지정해야 함 - 네트워크 주소와 호스트 주소로 나뉨 * 클래스별 네트워크 주소와 호스트 주소의 경계 - 하나의 네트워크를 묶어둔 것이라고 보면 됨, 각 크기별로 다름 A가 제일크고 아래로 내려갈수록 작아짐 - 크기가 크다는 것은 호스트 개수가 많다는 것을 의미 - 클래스 A : 0~127, 클래스 A의 첫번째 비트는 항상 0으로 시작 - 클래스 B : 128~191, 클래스 B의 첫번째 비트는 항상 10으로 시작 - 클래스 C : 192~223, 클래스 C의 첫번째 비트는 항상 110으로 시작 -> 첫번째 바이트 정보만..
실습 2-1. 소켓의 프로토콜과 특성 *프로토콜 이란 - 개념적으로 약속의 의미 - 컴퓨터 상호간의 데이터 송수신에 필요한 통규약 - 소켓을 생성할 때 기본적인 프로토콜을 지정해야함 #include int socket(int domain, int type, int protocol); domain : 소켓이 사용할 프로토콜 체계 정보 전달 type : 소켓의 데이터 전송방식에 대한 정보 전달 protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달 매개변수가 모두 프로토콜 정보와 관련이 있다 * 프로토콜 체계 - 프로토콜도 그 종류에 따라서 부류가 나뉘는데, 그 부류를 가리켜 프로토콜 체계라 한다. - 프로토콜의 체계 PF_INET은 IPv4인터넷 프로토콜 체계를 의미 - 소켓함수 매개변수 중 첫번째 파라미터 PF_INET IPv4..
5. 프로토콜 레이어 아키텍처와 서비스 모델 * 레이어링 아키텍처 여러가지 복합적인 과정을 레이어로 나누어서 구조를 만듦 복합적인 프로세스 관리가 편리하고 유지보수 유용 modulization 한가지 특정 기능에 문제가 생기면 그 레이어의 문제만 처리하면 됨 레이어링의 단점은 각 과정을 계속 끊어서 프로세스를 진행한다는 것 레이어링을 하지 않으면 문제가 발생했을 때 찾기가 힘듦 *인터넷 프로토콜 스택 -어플리케이션 레이어 : ftp, smtp, http -전송 레이어 : tcp, udp -네트워크 : ip -링크 : 802.11 -피지컬 : 랜선, 무선 등 이 레이어들이 복합적으로 만들어져서 우리가 사용하는 인터넷을 제공 *iso/osi 레퍼런스 모델 5계층으로 보면 애매한 부분이 생김 -프레젠테이션 레이어 : 암호나 압축을 하는 계층 -세션 레이..
4. 네트워크의 delay, loss, throughput * QUEUEING DELAY 링크에 데이터가 들어오는 rate가 나가는 rate보다 크면 패킷이 쌓이고 큐에서 줄을 섰다가 다시 나가기 전까지의 시간이 delay 저장 공간이 큐보다 작아서 패킷 drop이 생기고 이를 loss라고 함 *패킷 지연의 네가지 구성요소 -nodal processing : 패킷이 라우터에 들어오고, 오류를 체크하고 오류가 있다면 바로 drop하고 그 다음 테이블을 보고 output link를 결정 - queueing delay : 너무 빠른 속도로 들어오는데, 나가는 속도가 느려서 큐에 쌓였다가 나가는 시간 congestion이 queueing delay에 많은 영향을 줌 - transmission delay : l(패킷의 길이)/r(링크의 대역폭) - propagation ..