본문 바로가기

분류 전체보기

(124)
P2P file distribution (P2P vs C-S) P2P(Peer to Peer)이란? 중앙 서버를 거치지 않고 클라이언트 컴퓨터끼리 직접 통신하는 방식이다. ex) 토렌토, 스트리밍, 스카이프 특징 - 항상 서버가 있는 것이 아니라 Client와 Server가 수시로 바뀐다. - Peer가 짧게 짧게 연결되며 IP도 바뀐다. - 파일 공유에 유리하다. ex) BitTorrent (토렌토) - file은 256Kb Chunks로 나뉜다. - Tracker는 동작하고 가장 가까운 client의 IP주소를 관리하고 알려준다. 순서 1) 처음 다운받을(시작할) 땐, tracker에게 peer들의 list를 받는다. 2) 어느정도 데이터가 남으면 다른 peer에게 공급해준다. + tit-for-tat 추가정보 https://govl6113.wixsite.com..
DNS DNS(Domain Name System)란? 사람들은 text에 강하고 internet host, router들은 숫자에 강하기 때문에 사람들이 text로 URL을 입력하면 IP 주소로 이어주는 징검다리 역할이다. 특징 - UDP기반 (TCP는 시간이 너무 오래걸려서 불필요한 traffic을 줄이기 위해) - Application-layer protocol - single DNS 불가 : 확장성 문제가 일어나고 이거 무너지면 전세계가 무너지기 때문에 분산시켜야함. 하는 일 ▪ 호스트 이름에서 IP 주소로 변환 ▪ 호스트 별칭 지정 ▪ 메일 서버 별칭 지정 ▪ 경로 분산 : 여러 IP 주소가 하나의 이름에 대응 할 수도 있음. 분산된, 계층 구조 Root DNS Server : 전세계 13군데 위치 To..
SMTP SMTP란? 간이 전자 우편 전송 프로토콜로, 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜이다. 특징 userAgent가 메일서버로 메일을 올릴 때가 아니라 메일 서버에서 다른 메일 서버로 메일을 보낼 때 사용한다. 메일 서버에 메세지 큐가 존재해서 큐에 있는 메일을 지속적으로 다른 메일서버로 보내주거나 자신의 user agent에게 보내준다. TCP port number : 25. TCP기반이기 때문에 handshaking을 한다. command/response 상호 작용을 한다. - command : ASCII text (명령식으로) - response : 상태 코드 (숫자) User Agent - 사용자를 대신하여 일을 수행하는 소프트웨어 에이전트로 메일을 작성하고 읽을 수 있다. - clie..
지속성 HTTP vs 비 지속성 HTTP (+ RTT) HTTP는 TCP를 사용한다. 지속성 HTTP TCP연결된 후 page 들어가서 계속 타고 들어가며 클릭하다가 끝나면 TCP 연결을 해제한다. + 요즘은 보통 이 방법을 사용한다. 순서 1) Client : Host 주소만 server에 보낸다. (www.someSchool.deu) 2) Server : accept를 해준다. 3) Client : 원하는 객체를 알리며 HTTP request message를 보낸다. (someDepartment/home.index) 4) Server : 원하는 객체를 response message에 담아 client에 보낸다. 5) (3) ~ (4)를 반복한다. 6) TCP 연결을 해제한다. 반응시간 처음 TCP 연결하는 1RTT 말고는 계속 1RTT씩 소요하며 데이터/..
TCP/UDP 차이 (+SSL) TCP (암호화X) 1) reliable transport : 자원이 잘 도착했는지 믿을만하다. 2) flow control : receiver에게 강압적으로 보내지 않고 일이 많으면 속도 조절을 해줌 3) congestion control : 혼잡제어 4) dose not provide (요구하지마라) : 시간(전송속도) 5) connection-oriented : 연결이 고정된 구간이 있다(X), hand shaking으로 패킷이 이렇게 가든, 저렇게 가든 연결은 끊어지지 않는다. ex) e-mail, remote terminal access, Web, file transfer UDP (암호화X) 1) unreliable data transfer : 자원이 잘 도착했는지 신뢰성이 떨어진다. 2) do..
Socket이란? Socket이란? 응용프로그램을 짤 수 있도록 제공해주는 API로, 비공개인 OS와 통신 할 수 있도록 연결되어 있다. 네트워크를 통해 프로세스끼리 정보를 주고 받을 때 사용한다. OS와 통신하는 API Client Socket socket(): socket 생성 connect(): 연결 요청 send()/recv(): data 오고 가는 과정 close(): socket 연결 종료 Server Socket socket(): socket 생성 bind(): IP주소 할당 listen(): client 요청을 대기 accept(): hand shaking 과정 (확인 과정) send()/recv(): data 오고 가는 과정 close(): socket 연결 종료
Application architectures 1) Client-Server (CS) - Server가 감당할 수 있는 Client 수를 넘으면 비용 증가 Server - 항상 host 대기 상태 - 영구적 IP주소 - 데이터 센터나 여러대 컴퓨터가 필요 Client - 계속 연결할 필요 x - 동적/사설 IP 주소 2) P2P (peer to peer) - 친구에게 서비스를 받거나(client) 제공(server)해줌. - 항상 대기 중인 server가 없음 - self scalability (확장성) - IP 주소 바뀜 3) Hybrid ((1)+(2))
tit-for-tat Tit-for-tat이란? (게임이론 관점) 직역을 하면 '상대가 치면 나도 가볍게 친다'라는 뜻으로 '눈에는 눈 이에는 이'와 같은 맞대응 전략을 이를 때 사용한다. (네트워크 관점) chuck을 주고받으며 좋은 partner peer 를 남기고 selfish peer 를 버리기 위한 전략이다. chuck이란? 256Kb 256Kb 256Kb 256Kb 256Kb 보통 한 개의 파일 전체는 256Kb로 쪼개 나눠 보낸다. 이 때의 256Kb 단위가 되는 것을 chuck이라고 한다. 특징 1) 10초마다 같은 무리의 4개의 peer를 재평가한다. 2) 30초마다 같은 무리에서 한 peer를 버리고 다른 peer를 초대한다. (같은 무리가 계속 유지되는 것을 막기위해) 이 때 초대된 peer를 "optim..