Thứ Hai, 27 tháng 1, 2014

VPN


leased lines: các đường truyền mạng riêng
Mạng WAN: Wide area network
Intranet: mạng nội bộ
internet:mạng công cộng



Mỗi VPN có thể có một mạng LAN chung tại toà nhà trung tâm của một công ty, các mạng Lan khác tại các văn phòng từ xa hay các nhân viên làm việc tại nhà,... kết nối tới


Mỗi VPN có thể được coi là một mạng riêng lẻ, sử dụng một mạng chung(internet) để kết nối các mạng riêng(site) và các người dùng từ xa lại với nhau. Mỗi VPN sử dụng các kết nôi ảo được truyền qua đường internet kết nối các site lại với nhau

Có 3 loại VPN thông dụng:
+Remote-Access : hay còn gọi là VPDN : virtual private dial-up network
Là dạng kết nối User-LAN sử dụng trong các công ty mà các nhân viên có nhu cầu kết nối mạng riêng của công ty từ xa(đảm bảo tính bảo mật)
+Site-to-site: tạo kết nối giữa các site với các site khác . Chia làm hai loại:
  -intranet-based : ví dụ : một công ty có nhiều cơ quan khác nhau, mỗi cơ quan có một mạng lan khác nhau. VPN này giúp các mangj Lan này kết nối với nhau thành một mạng riêng thống nhất để chia sẻ các thông tin, dữ liệu
  -Extranet-based : ví dụ hai công ty liên kết với nhau theo kiểu LAN to LAN để cho phép các công ty có thể làm việc trong môi trường chia sẻ tài nguyên


Ba loại mạng riêng ảo





Lợi ích của VPN
  • Mở rộng vùng địa lý có thể kết nối được
  • Tăng cường bảo mật cho hệ thống mạng
  • Giảm chi phí vận hành so với mạng WAN truyền thống
  • Giảm thời gian và chi phí truyền dữ liệu đến người dùng ở xa
  • Tăng cường năng suất
  • Giảm đơn giản hoá cấu trúc mạng
  • Cung cấp thêm một phương thức mạng toàn cầu
  • Cung cấp khả năng hỗ trợ thông tin từ xa
  • Cung cấp khả năng tương thích cho mạng băng thông rộng
  • Cung cấp khả năng sinh lợi nhuận cao hơn mạng WAN truyền thống
Một mạng VPN được thiết kế tốt sẽ đáp ứng được các yêu cầu sau:
  • Bảo mật (Security)
  • Tin cậy (Reliability)
  • Dễ mở rộng, nâng cấp (Scalability)
  • Quản trị mạng thuận tiện (Network management)
  • Quản trị chính sách mạng tốt (Policy management)



lib requests

Module chuẩn urllib2 cung cấp hầu hết các tính năng HTTP bạn cần. nó được xây dựng cho một thời gian khác nhau và một trang web khác nhau. Nó yêu cầu một lượng khá lớn các công việc giúp thực hiện tasks một cách đơn giản nhất

Make a requests:

>>> r = requests.get('https://github.com/timeline.json')

+make a request to github's pubblic timelime. make a Response obj and you can get all the imfomation you need from that obj
Requests’ simple API nghĩa là tất cả các hình thức rõ ràng của HTTP requests như Get, post, put, delete, head hoặc options..

Thông qua các tham số của URL :
ví dụ:
>>> value = { 'value1':'thanh', 'value2': hiep'}
>>>r = requests.get("http://httpbin.org/get, params = value)

>>>print(r.url)
http://httpbin.org/get?value2=hiep&value1=thanh

khi bạn muốn gửi một số loại data lên chuỗi nghi vấn của url , khi bạn xây dựng URL bằng tay thì data sẽ hiện ra dưới dạng cặp key:value đằng sau một dấu hỏi

Nội dung Response:
>>> import requests
>>> r = requests.get('https://github.com/timeline.json')
>>> r.text
u'[{"repository":{"open_issues":0,"url":"https://github.com/...

 code trên giúp bạn đọc được nội dung của server's response, dưới dạng json.
Requests sẽ tự động giải mã nọi dung từ máy chủ.
+dùng r.encoding để tìm ra những gì yêu cầu mã hoá sử dụng hoặc thay đổi nó để cho phép bạn sử dụng r.text với mã hóa chính xác

>>> r.encoding
'utf-8'
>>> r.encoding = 'ISO-8859-1'


JSON Response Content

 Có một bộ mã hóa Json dựng sẵn khi bạn làm việc với json data

>>> import requests
>>> r = requests.get('https://github.com/timeline.json')
>>> r.json()
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

Tùy chỉnh tiêu đề:
>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> headers = {'content-type': 'application/json'}

>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

Post file:

>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('report.xls', 'rb')}

>>> r = requests.post(url, files=files)
>>> r.text
{
  ...
  "files": {
    "file": "<censored...binary...data>"
  },
  ...
}

sẽ post lên trang web URL đó nội dung như trong file "report.xls' được mở

Có thểđịnh rõ thêm tên file post:
>>> files = {'file':('report.xls', open('report.xls', 'rb'))

hoặc post lên một string hay một data trực tiếp:
>>> files = {'file': ('report.csv', 'some,data,to,send\nanother,row,to,send\n')}




Có thể kiểm tra Response status codes:
'r.status_code'


>>> r.headers 
dùng để xem server's response headers

Một số Requests có tính năng tiên tiến hơn:

+session  obj: cho phép bạn đua ra các tham số ngay trên yêu cầu. ví dụ:
s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")

print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'

Một Session obj có chứa tất cả các phương thức của một API requests chính


Requests.get() làm hai việc:
+tạo ra một requests obj sẽ gửi tới máy chủ yêu cầu hoặc truy vấn tài nguyên
+Một response sẽ được tạo ra, chứa tất cả những thông tin trả về từ máy chủ và chứa requests obj bạn đã tạo ra
Ví dụ: để đưa ra những thông tin cực kì quan trong từ một máy chủ
>>> r = requests.get('http://en.wikipedia.org/wiki/Monty_Python')

r.headers: giúp bạn truy cập các tiêu đề gửi về từ máy chủ
r.requests.headers() giúp chúng ta nhận được các tiêu đề chúng ta đã gửi tới máy chủ


Session obj:
Session obj cho phép bạn duy trì các requests thông qua các tham số trực tiếp.Nó cũng duy trì các cookies thông qua tất cả các requests được tạo từ Session intances









Thứ Ba, 7 tháng 1, 2014

graph explorer

List: trả lại một list các metrics có chứa các từ khóa nhập vào. Các từ khóa này là một phần của hostname

Các vấn đề cần chú ý trong một chuỗi query
+ Filters: lọc ra các targets phù hợp với bộ lọc. Tất cả các targets này sẽ được sử dụng tối đa
+ Group_by: kiểm soát cáợc đối tượng đưc nhóm thành graph. Các đối tượng có giá trị tương đương nhau sẽ được nhóm và một graph
+ Avg_by: là một phương thức tổng hợp:
cho tâts cả các targets trong một graph. Tất cả các targets với giá trị bất kì cho tag(  Thẻ ghi địa chỉ) này được tính trung bình và coi như là một
+avg_over:
tùy thuộc và cách spikey một graph. Ví dụ bạn có thể xử lý graph bằng cách lấy trung bình trong một khoảng thời gian nhất định
+From_to: kiểm soát dải thời gian
+Contant_tags:
+variable_tags: các targets được biểu diễn trên  các tags khác nhau được phân biệt rã ràng trên một graph